X-Git-Url: https://git.grml.org/?a=blobdiff_plain;ds=sidebyside;f=grml-debootstrap;h=908aad9974f4f34ff1c1da2846ec8e7365a0fd6f;hb=b7f67e9915e948a20a6c9264e1c7e27e0597f0e2;hp=ef7f44211a4f33d95b4af5003add5fe23ad3730f;hpb=2932aafa464452ef006987efb4f47c2da8645d07;p=grml-debootstrap.git diff --git a/grml-debootstrap b/grml-debootstrap index ef7f442..908aad9 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -51,11 +51,12 @@ Configuration options: -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. + -d, --confdir=path Place of config files for debootstrap, defaults to + /etc/debootstrap + --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. @@ -102,6 +103,50 @@ fi # cmdline handling {{{ # source external command line parameter-processing script . $prog_real.clp + +# == business-logic of command line parameter-processing + +# source configuration file in if supplied. {{{ +[ "$_opt_confdir" ] && { + CONFFILES=$_opt_confdir + if ! [ -r "$CONFFILES/config" ] ; then + eerror "Error: config file $CONFFILES/config not found."; eend 1; exit 1 + fi + if ! . "$CONFFILES/config" ; then + eerror "Error reading config file $CONFFILES/config" ; eend 1 ; exit 1 + 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_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 +} + +[ "$_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 {{{ @@ -690,9 +735,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