From: Guido Trotter Date: Thu, 16 Oct 2008 09:20:04 +0000 (+0000) Subject: Parse command line arguments in common.sh X-Git-Tag: v0.6~18 X-Git-Url: http://git.equinoxoli.org/?p=ext%2Finstance-debootstrap.git;a=commitdiff_plain;h=3474d1eb7a8f033ad59b2b00d30b2aadb8392ddc Parse command line arguments in common.sh Currently each of the 4 OS API scripts parses its command line separately. Creating common.sh lets us centralize this behavior. For the rename script we change the old_name variable to just instance for more uniformity with what the new version of the API will do. Reviewed-by: iustinp --- diff --git a/common.sh b/common.sh new file mode 100644 index 0000000..cfc913a --- /dev/null +++ b/common.sh @@ -0,0 +1,37 @@ + +get_api5_arguments() { + TEMP=`getopt -o o:n:i:b:s: -n '$0' -- "$@"` + if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi + # Note the quotes around `$TEMP': they are essential! + eval set -- "$TEMP" + while true; do + case "$1" in + -i|-o) instance=$2; shift 2;; + + -n) new_name=$2; shift 2;; + + -b) blockdev=$2; shift 2;; + + -s) swapdev=$2; shift 2;; + + --) shift; break;; + + *) echo "Internal error!"; exit 1;; + esac + done + if [ -z "$instance" -o -z "$blockdev" ]; then + echo "Missing OS API Argument" + exit 1 + fi + if [ "$0" != "export" -a -z "$swapdev" ]; then + echo "Missing OS API Argument" + exit 1 + fi + if [ "$0" = "rename" -a -z "$new_name" ]; then + echo "Missing OS API Argument" + exit 1 + fi +} + +get_api5_arguments + diff --git a/create.in b/create.in index 8426d92..2212286 100755 --- a/create.in +++ b/create.in @@ -46,30 +46,7 @@ fi DPKG_ARCH=${ARCH:-`dpkg --print-architecture`} CACHE_FILE="$CACHE_DIR/cache-${SUITE}-${DPKG_ARCH}.tar" -TEMP=`getopt -o i:b:s: -n '$0' -- "$@"` - -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi - -# Note the quotes around `$TEMP': they are essential! -eval set -- "$TEMP" - -while true; do - case "$1" in - -i) instance=$2; shift 2;; - - -b) blockdev=$2; shift 2;; - - -s) swapdev=$2; shift 2;; - - --) shift; break;; - - *) echo "Internal error!"; exit 1;; - esac -done -if [ -z "$instance" -o -z "$blockdev" -o -z "$swapdev" ]; then - echo "Missing -i or -b or -s argument!" - exit 1 -fi +. common.sh mkswap $swapdev mke2fs -Fjq $blockdev diff --git a/export b/export index 31fc235..ff1b3c1 100755 --- a/export +++ b/export @@ -19,27 +19,6 @@ set -e -TEMP=`getopt -o i:b: -n '$0' -- "$@"` - -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi - -# Note the quotes around `$TEMP': they are essential! -eval set -- "$TEMP" - -while true; do - case "$1" in - -i) instance="$2"; shift 2;; - - -b) blockdev="$2"; shift 2;; - - --) shift; break;; - - *) echo "Internal error!"; exit 1;; - esac -done -if [ -z "$blockdev" ]; then - echo "Missing -b argument!" - exit 1 -fi +. common.sh dump -0 -q -f - "$blockdev" diff --git a/import b/import index 90fd7ff..0207fa6 100755 --- a/import +++ b/import @@ -19,30 +19,7 @@ set -e -TEMP=`getopt -o i:b:s: -n '$0' -- "$@"` - -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi - -# Note the quotes around `$TEMP': they are essential! -eval set -- "$TEMP" - -while true; do - case "$1" in - -i) instance=$2; shift 2;; - - -b) blockdev=$2; shift 2;; - - -s) swapdev=$2; shift 2;; - - --) shift; break;; - - *) echo "Internal error!"; exit 1;; - esac -done -if [ -z "$instance" -o -z "$blockdev" -o -z "$swapdev" ]; then - echo "Missing -i or -b or -s argument!" - exit 1 -fi +. common.sh mkswap $swapdev mke2fs -Fjq $blockdev diff --git a/rename b/rename index 66c5409..d7cf756 100755 --- a/rename +++ b/rename @@ -19,32 +19,7 @@ set -e -TEMP=`getopt -o o:n:b:s: -n '$0' -- "$@"` - -if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi - -# Note the quotes around `$TEMP': they are essential! -eval set -- "$TEMP" - -while true; do - case "$1" in - -o) old_name=$2; shift 2;; - - -n) new_name=$2; shift 2;; - - -b) blockdev=$2; shift 2;; - - -s) swapdev=$2; shift 2;; - - --) shift; break;; - - *) echo "Internal error!"; exit 1;; - esac -done -if [ -z "$old_name" -o -z "$new_name" -o -z "$blockdev" -o -z "$swapdev" ]; then - echo "Missing -o or -n or -b or -s argument!" - exit 1 -fi +. common.sh TMPDIR=`mktemp -d` || exit 1 trap "umount $TMPDIR; rmdir $TMPDIR" EXIT @@ -63,17 +38,17 @@ MNAME="$TMPDIR/etc/mailname" # for hostname, we raise and error if the old hostname is not what we # expect OLD_HNAME="`cat $HNAME`" -if [ "$OLD_HNAME" = "$old_name" ]; then +if [ "$OLD_HNAME" = "$instance" ]; then echo $new_name > $HNAME else - echo "Cannot rename from $old_name to $new_name:" 1>&2 + echo "Cannot rename from $instance to $new_name:" 1>&2 echo "Instance has a different hostname ($OLD_HNAME)" 1>&2 exit 1 fi -# for mailname, we rename only if it has the old_name, otherwise we +# for mailname, we rename only if it has the old name, otherwise we # ignore it (and assumme that it's a customized name) -if [ "`cat $MNAME`" = "$old_name" ]; then +if [ "`cat $MNAME`" = "$instance" ]; then echo $new_name > $MNAME fi