X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=grml-debootstrap;h=809e9e45de3aca2f2beaaccafb7d53567cf13289;hp=84f475312af3898b2fea1dcf210b666c2d2f30c0;hb=cd3d55ee26fe37bf59927e9b6526a5db329e72a0;hpb=c32ebbf39bf5a259c82874f15e11652917794591 diff --git a/grml-debootstrap b/grml-debootstrap index 84f4753..809e9e4 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -11,6 +11,7 @@ set -e # exit on any error # variables {{{ PN="$(basename $0)" +prog_real=`readlink -f -- $0` VERSION='0.23' MNTPOINT="/mnt/debootstrap.$$" @@ -48,13 +49,14 @@ Bootstrap options: Configuration options: + -d, --confdir=path Place of config files for debootstrap, defaults to + /etc/debootstrap -c, --config=file Use specified configuration file, defaults to - /etc/debootstrap/config - --packages[=f] Install packages defined in /etc/debootstrap/packages. - Option arg: alternative package list file. - --debconf[=f] Pre-seed packages using - /etc/debootstrap/debconf-selections. Option arg: - alternative preseed db file. + /config + --packages[=f] Install packages defined in /packages. Option + arg: alternative package list file. + --debconf[=f] Pre-seed packages using /debconf-selections. + Option arg: alternative pre-seed db file. --keep_src_list Do not overwrite user provided apt sources.list. --hostname=name Hostname of Debian system. --password=pwd Use specified password as password for user root. @@ -99,73 +101,40 @@ fi # }}} # cmdline handling {{{ +# source external command line parameter-processing script +. $prog_real.clp + +# business-logic of command line parameter-processing +[ "$_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_confdir" ] && CONFFILES=$_opt_confdir +[ "$_opt_config" ] && CONFIGFILE=$_opt_config +[ "$_opt_packages_set" ] && PACKAGES='yes' +[ "$_opt_debconf_set" ] && DEBCONF='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_help" ] && { + usage ; eend 0 + eend 0 + exit 0 +} -while [ "$#" -gt "0" ] ; do - case $1 in - -c|--config) - shift - CONFIGFILE=$1 - ;; - --grub) - shift - GRUB=$1 - ;; - --groot) - shift - GROOT=$1 - ;; - -h|--help) - usage ; eend 0 - eend 0 - exit 0 - ;; - --hostname) - shift - HOSTNAME=$1 - ;; - --interactive) - INTERACTIVE=1 - ;; - -i|--iso) - shift - [ -n "$MIRROR" ] && unset MIRROR - ISO=$1 - ;; - -m|--mirror) - shift - MIRROR=$1 - CHROOTMIRROR=$1 - ;; - -p|--mntpoint) - shift - MNTPOINT=$1 - ;; - --password) - shift - ROOTPASSWORD=$1 - ;; - -r|--release) - shift - RELEASE=$1 - ;; - -t|--target) - shift - TARGET=$1 - ;; - -v|--version) - einfo "$PN - version $VERSION" - einfo "Send bug reports to bugs@grml.org or http://grml.org/bugs/" - eend 0 - exit 0 - ;; - *) - eerror "Syntax error." - usage ; eend 1 - exit 1 - ;; - esac - shift -done +[ "$_opt_version" ] && { + einfo "$PN - version $VERSION" + einfo "Send bug reports to bugs@grml.org or http://grml.org/bugs/" + eend 0 + exit 0 +} # }}} # welcome screen {{{ @@ -754,9 +723,11 @@ preparechroot() { sed -i "s#GRUB=.*#GRUB=\"$GRUB\"#" $MNTPOINT/etc/debootstrap/config sed -i "s#GROOT=.*#GROOT=\"$GROOT\"#" $MNTPOINT/etc/debootstrap/config - cp /etc/debootstrap/packages $MNTPOINT/etc/debootstrap/packages - [ -f /etc/debootstrap/debconf-selections -a "$DEBCONF" = 'yes' ] && \ - cp /etc/debootstrap/debconf-selections $MNTPOINT/etc/debootstrap/ + cp ${_opt_packages:-/etc/debootstrap/packages} \ + $MNTPOINT/etc/debootstrap/packages + _opt_debconf=${_opt_debconf:-/etc/debootstrap/debconf-selections} + [ -f $_opt_debconf -a "$DEBCONF" = 'yes' ] && \ + cp $_opt_debconf $MNTPOINT/etc/debootstrap/debconf-selections # notice: do NOT use $CHROOT_VARIABLES inside chroot but statically file instead! cp $CHROOT_VARIABLES $MNTPOINT/etc/debootstrap/variables