From: Kaarle Ritvanen Date: Mon, 28 Sep 2015 11:51:21 +0000 (+0300) Subject: lxc-alpine: use getopt to parse options X-Git-Tag: lxc-1.0.8~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54b8db6b966f73ee710b21a243ece36cf67ac2a8;p=thirdparty%2Flxc.git lxc-alpine: use getopt to parse options Signed-off-by: Kaarle Ritvanen Acked-by: Stéphane Graber --- diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in index fc0293a97..8ee69c607 100644 --- a/templates/lxc-alpine.in +++ b/templates/lxc-alpine.in @@ -278,12 +278,6 @@ usage_err() { exit 1 } -optarg_check() { - if [ -z "$2" ]; then - usage_err "option '$1' requires an argument" - fi -} - default_path=@LXCPATH@ release= arch=$(uname -m) @@ -294,58 +288,39 @@ if [ $(id -u) -ne 0 ]; then exit 1 fi +options=$(getopt -o hn:p:r:R:a: -l help,name:,rootfs:,path:,repository:,release:,arch: -- "$@") +[ $? -eq 0 ] || usage_err +eval set -- "$options" + while [ $# -gt 0 ]; do - opt="$1" - shift - case "$opt" in + case "$1" in -h|--help) usage exit 0 ;; -n|--name) - optarg_check $opt "$1" - name=$1 - shift + name=$2 ;; --rootfs) - optarg_check $opt "$1" - rootfs=$1 - shift + rootfs=$2 ;; -p|--path) - optarg_check $opt "$1" - path=$1 - shift + path=$2 ;; -r|--repository) - optarg_check $opt "$1" - repository=$1 - shift + repository=$2 ;; -R|--release) - optarg_check $opt "$1" - release=$1 - shift + release=$2 ;; -a|--arch) - optarg_check $opt "$1" - arch=$1 - shift + arch=$2 ;; --) + shift break;; - --*=*) - # split --myopt=foo=bar into --myopt foo=bar - set -- ${opt%=*} ${opt#*=} "$@" - ;; - -?) - usage_err "unknown option '$opt'" - ;; - -*) - # split opts -abc into -a -b -c - set -- $(echo "${opt#-}" | sed 's/\(.\)/ -\1/g') "$@" - ;; esac + shift 2 done