X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=26ddbf7c13558dcdb31ca21f79841fa52115d170;hp=a08262acb4b5fd9cd8a69d556a06111f27f86f3d;hb=e2272afc468270922a68d0a091ec550e8e14bb6e;hpb=b8e833aa58b68b6fac29ca2256096495c135e034 diff --git a/grml-debootstrap b/grml-debootstrap index a08262a..26ddbf7 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -129,25 +129,25 @@ fi } # }}} -[ "$_opt_mirror" ] && MIRROR=$_opt_mirror -[ "$_opt_iso" ] && ISO=$_opt_iso -[ "$_opt_release" ] && RELEASE=$_opt_release -[ "$_opt_target" ] && TARGET=$_opt_target -[ "$_opt_mntpoint" ] && MNTPOINT=$_opt_mntpoint -[ "$_opt_debopt" ] && DEBOOTSTRAP_OPT=$_opt_debopt -[ "$_opt_interactive" ] && INTERACTIVE=1 -[ "$_opt_config" ] && CONFIGFILE=$_opt_config -[ "$_opt_packages_set" ] && PACKAGES='yes' -[ "$_opt_debconf_set" ] && DEBCONF='yes' +[ "$_opt_mirror" ] && MIRROR=$_opt_mirror +[ "$_opt_iso" ] && ISO=$_opt_iso +[ "$_opt_release" ] && RELEASE=$_opt_release +[ "$_opt_target" ] && TARGET=$_opt_target +[ "$_opt_mntpoint" ] && MNTPOINT=$_opt_mntpoint +[ "$_opt_debopt" ] && DEBOOTSTRAP_OPT=$_opt_debopt +[ "$_opt_interactive" ] && INTERACTIVE=1 +[ "$_opt_config" ] && CONFIGFILE=$_opt_config +[ "$_opt_packages_set" ] && PACKAGES='yes' +[ "$_opt_debconf_set" ] && DEBCONF='yes' [ "$_opt_scripts_set" ] && SCRIPTS='yes' [ "$_opt_chroot_scripts_set" ] && CHROOT_SCRIPTS='yes' -[ "$_opt_keep_src_list" ] && KEEP_SRC_LIST='yes' -[ "$_opt_hostname" ] && HOSTNAME=$_opt_hostname -[ "$_opt_password" ] && ROOTPASSWORD=$_opt_password -[ "$_opt_bootappend" ] && BOOT_APPEND=$_opt_bootappend -[ "$_opt_groot" ] && GROOT=$_opt_groot -[ "$_opt_grub" ] && GRUB=$_opt_grub -[ "$_opt_verbose" ] && VERBOSE="-v" +[ "$_opt_keep_src_list" ] && KEEP_SRC_LIST='yes' +[ "$_opt_hostname" ] && HOSTNAME=$_opt_hostname +[ "$_opt_password" ] && ROOTPASSWORD=$_opt_password +[ "$_opt_bootappend" ] && BOOT_APPEND=$_opt_bootappend +[ "$_opt_groot" ] && GROOT=$_opt_groot +[ "$_opt_grub" ] && GRUB=$_opt_grub +[ "$_opt_verbose" ] && VERBOSE="-v" [ "$_opt_help" ] && { usage ; eend 0 @@ -298,9 +298,25 @@ prompt_for_password() # ask for Debian mirror {{{ prompt_for_mirror() { - MIRROR="$(dialog --stdout --title "${PN}" --inputbox \ - "Please enter Debian mirror you would like to use for installing packages." \ - 0 0 $MIRROR)" + [ -n "$ISO" ] && DEFAULT_MIRROR='local' || DEFAULT_MIRROR='net' + + CHOOSE_MIRROR=$(dialog --stdout --title "$PN" --default-item $DEFAULT_MIRROR \ + --menu "Where do you want to install from?" 0 0 0 \ + net "install via network (downloading from mirror)" \ + local "install from local directory/mirror" + ) + + if [ "$CHOOSE_MIRROR" = 'net' ] ; then + [ -n "$MIRROR" ] || MIRROR='ftp://ftp.de.debian.org/debian' + MIRROR="$(dialog --stdout --title "${PN}" --inputbox \ + "Please enter Debian mirror you would like to use for installing packages." \ + 0 0 $MIRROR)" + else # CHROOT_VARIABLES == local + [ -n "$ISO" ] || ISO='/mnt/mirror' + ISO="$(dialog --stdout --title "${PN}" --inputbox \ + "Please enter directory name you would like to use for installing packages." \ + 0 0 $ISO)" + fi } # }}} @@ -425,6 +441,19 @@ fi } # }}} +# user should recheck his configuration {{{ +# support full automatic installation: +checkforrun() { + dialog --timeout 10 --title "$PN" \ + --yesno "Do you want to stop at this stage? + +Notice: you are running ${PN} in non-interactive mode. +${PN} will install Debian ${RELEASE} on ${TARGET}. +Last chance to quit. Timeout of 10 seconds running.... + +Do you want to stop now?" 0 0 2>/dev/null +} + # make sure the user is aware of the used configuration {{{ checkconfiguration() { @@ -447,6 +476,8 @@ elif [ -n "$INTERACTIVE" ] ; then Using hostname $HOSTNAME" [ -n "$MIRROR" ] && INFOTEXT="$INFOTEXT Using mirror: $MIRROR" + [ -n "$ISO" ] && INFOTEXT="$INFOTEXT + Using ISO: $ISO" INFOTEXT="$INFOTEXT @@ -463,7 +494,7 @@ else # if not running automatic installation display configuration and prompt fo [ -n "$GRUB" ] && echo " Install grub: $GRUB" || echo " Install grub: no" [ -n "$RELEASE" ] && echo " Using release: $RELEASE" [ -n "$MIRROR" ] && echo " Using mirror: $MIRROR" - [ -n "$ISO" ] && echo " Using iso: $ISO" + [ -n "$ISO" ] && echo " Using ISO: $ISO" case "$MNTPOINT" in "$TARGET") ;; *) echo " Important! Continuing will delete all data from ${TARGET}!" ;; esac echo einfon "Is this ok for you? [y/N] " @@ -483,8 +514,7 @@ interactive_mode() prompt_for_swraid - # do not prompt for partition dialog if swraid has been configured already - [ -n "$TARGET" ] || prompt_for_target + prompt_for_target prompt_for_bootmanager @@ -510,8 +540,6 @@ interactive_mode() fi prompt_for_mirror - - checkconfiguration } # run interactive mode if we didn't get the according configuration yet @@ -522,6 +550,8 @@ if [ -z "$TARGET" -o -n "$INTERACTIVE" ] ; then fi # }}} +checkconfiguration + # finally make sure at least $TARGET is set [the partition for the new system] {{{ if [ -n "$TARGET" ] ; then SHORT_TARGET="${TARGET##*/}" @@ -643,19 +673,6 @@ stage() { } # }}} -# user should recheck his configuration {{{ -# support full automatic installation: -checkforrun() { - dialog --timeout 10 --title "$PN" \ - --yesno "Do you want to stop at this stage? - -Notice: you are running ${PN} in non-interactive mode. -${PN} will install Debian ${RELEASE} on ${TARGET}. -Last chance to quit. Timeout of 10 seconds running.... - -Do you want to stop now?" 0 0 2>/dev/null -} - # create filesystem {{{ mkfs() { if [ -n "$MKFS" ] ; then