[lxc-devel] [PATCH 1/4] lxc-destroy: use posix shell instead of bash

Natanael Copa ncopa at alpinelinux.org
Tue Dec 25 16:08:53 UTC 2012


- avoid use getopt --longoptions

Signed-off-by: Natanael Copa <ncopa at alpinelinux.org>
---
 src/lxc/lxc-destroy.in | 41 +++++++++++++++++++++++++----------------
 1 file changed, 25 insertions(+), 16 deletions(-)

diff --git a/src/lxc/lxc-destroy.in b/src/lxc/lxc-destroy.in
index 1527495..0c27e4a 100644
--- a/src/lxc/lxc-destroy.in
+++ b/src/lxc/lxc-destroy.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 #
 # lxc: linux Container library
@@ -39,38 +39,47 @@ help() {
     echo "  -f        stop the container if it is running (rather than abort)" >&2
 }
 
-shortoptions='hn:f'
-longoptions='help,name:'
-lxc_path=@LXCPATH@
-force=0
-
-getopt=$(getopt -o $shortoptions --longoptions  $longoptions -- "$@")
-if [ $? != 0 ]; then
+usage_err() {
+    [ -n "$1" ] && echo "$1" >&2
     usage
-    exit 1;
-fi
+    exit 1
+}
 
-eval set -- "$getopt"
+optarg_check() {
+    if [ -z "$2" ]; then
+        usage_err "option '$1' requires an argument"
+    fi
+}
 
-while true; do
-        case "$1" in
+lxc_path=@LXCPATH@
+force=0
+
+while [ $# -gt 0 ]; do
+        opt="$1"
+        shift
+        case "$opt" in
             -h|--help)
                 help
                 exit 1
             ;;
             -n|--name)
-                shift
+                optarg_check "$opt" "$1"
                 lxc_name=$1
                 shift
             ;;
             -f)
                 force=1
-                shift
             ;;
             --)
-                shift
                 break
             ;;
+            -?)
+                usage_err "unknown option '$opt'"
+            ;;
+            -*)
+                # split opts -abc into -a -b -c
+                set -- $(echo "${opt#-}" | sed 's/\(.\)/ -\1/g') "$@"
+                ;;
             *)
             usage
             exit 1
-- 
1.8.0.2





More information about the lxc-devel mailing list