From 2932aafa464452ef006987efb4f47c2da8645d07 Mon Sep 17 00:00:00 2001 From: Tong Sun Date: Thu, 16 Oct 2008 22:20:51 -0400 Subject: [PATCH 1/1] use external command line parameter-processing script --- grml-debootstrap | 70 ++--------------------------- grml-debootstrap.clp | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 67 deletions(-) create mode 100644 grml-debootstrap.clp diff --git a/grml-debootstrap b/grml-debootstrap index 84f4753..ef7f442 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.$$" @@ -99,73 +100,8 @@ fi # }}} # cmdline handling {{{ - -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 +# source external command line parameter-processing script +. $prog_real.clp # }}} # welcome screen {{{ diff --git a/grml-debootstrap.clp b/grml-debootstrap.clp new file mode 100644 index 0000000..3dec6d9 --- /dev/null +++ b/grml-debootstrap.clp @@ -0,0 +1,122 @@ +# -*- shell-script -*- + +# +# shell script command line parameter-processing for: +# +# grml-debootstrap - wrapper around debootstrap for installing plain Debian via +# grml +# +# @Author: Tong SUN +# @Release: $Revision: $, under the BSD license +# @HomeURL: http://xpt.sourceforge.net/ +# + + +eval set -- `getopt \ + -o +m:i:r:t:p:c:hv --long \ + mirror:,iso:,release:,target:,mntpoint:,debopt:,interactive,config:,packages::,debconf::,keep_src_list,hostname:,password:,bootappend:,groot:,grub:,help,version \ + -- "$@"` + +while :; do + case "$1" in + + # == Bootstrap options + --mirror|-m) # Mirror which should be used for apt-get/aptitude. + shift; _opt_mirror="$1" + ;; + --iso|-i) # Mountpoint where a Debian ISO is mounted to, for use instead + shift; _opt_iso="$1" + ;; + --release|-r) # Release of new Debian system (default: stable). + shift; _opt_release="$1" + ;; + --target|-t) # Target partition (/dev/...) or directory. + shift; _opt_target="$1" + ;; + --mntpoint|-p) # Mountpoint used for mounting the target system. + shift; _opt_mntpoint="$1" + ;; + --debopt) # Extra parameters passed to the debootstrap. + shift; _opt_debopt="$1" + ;; + --interactive) # Use interactive mode (frontend). + _opt_interactive=T + ;; + # + + # == Configuration options + --config|-c) # Use specified configuration file, defaults to /etc/debootstr + shift; _opt_config="$1" + ;; + --packages) # Install packages defined in /etc/debootstrap/packages. Optio + shift; _opt_packages="$1" + _opt_packages_set=T + ;; + --debconf) # Pre-seed packages using /etc/debootstrap/debconf-selections. + shift; _opt_debconf="$1" + _opt_debconf_set=T + ;; + --keep_src_list) # Do not overwrite user provided apt sources.list. + _opt_keep_src_list=T + ;; + --hostname) # Hostname of Debian system. + shift; _opt_hostname="$1" + ;; + --password) # Use specified password as password for user root. + shift; _opt_password="$1" + ;; + # + --bootappend) # Add specified appendline to kernel whilst booting. + shift; _opt_bootappend="$1" + ;; + --groot) # Root device for usage in grub, corresponds with $TARGET in g + shift; _opt_groot="$1" + ;; + --grub) # Target for grub installation. Use grub syntax for specifying + shift; _opt_grub="$1" + ;; + + # == Other options + --help|-h) # Print this usage information and exit. + _opt_help=T + ;; + --version|-v) # Show summary of options and exit. + _opt_version=T + ;; + --) + shift; break + ;; + *) + eerror "Internal getopt error!"; eend 1 ; exit 1 + ;; + esac + shift +done + + +[ "$_opt_debug" ] && { + echo "[grml-debootstrap] debug: _opt_mirror=$_opt_mirror" + echo "[grml-debootstrap] debug: _opt_iso=$_opt_iso" + echo "[grml-debootstrap] debug: _opt_release=$_opt_release" + echo "[grml-debootstrap] debug: _opt_target=$_opt_target" + echo "[grml-debootstrap] debug: _opt_mntpoint=$_opt_mntpoint" + echo "[grml-debootstrap] debug: _opt_debopt=$_opt_debopt" + echo "[grml-debootstrap] debug: _opt_interactive=$_opt_interactive" + echo "[grml-debootstrap] debug: _opt_config=$_opt_config" + echo "[grml-debootstrap] debug: _opt_packages=$_opt_packages" + echo "[grml-debootstrap] debug: _opt_debconf=$_opt_debconf" + echo "[grml-debootstrap] debug: _opt_keep_src_list=$_opt_keep_src_list" + echo "[grml-debootstrap] debug: _opt_hostname=$_opt_hostname" + echo "[grml-debootstrap] debug: _opt_password=$_opt_password" + echo "[grml-debootstrap] debug: _opt_bootappend=$_opt_bootappend" + echo "[grml-debootstrap] debug: _opt_groot=$_opt_groot" + echo "[grml-debootstrap] debug: _opt_grub=$_opt_grub" + echo "[grml-debootstrap] debug: _opt_help=$_opt_help" + echo "[grml-debootstrap] debug: _opt_version=$_opt_version" +} + +if [ "$_opt_check_failed" ]; then + eerror "Not all mandatory options are set."; eend 1 ; exit 1 +fi + +# End -- 2.1.4