[PATCH build 6/6] Use getopt(1) to parse cmdline.

Trevor Woerner twoerner at gmail.com
Wed Sep 8 07:37:26 PDT 2010


From: Trevor Woerner <twoerner at gmail.com>

Switch to using a standard command-line parsing tool: getopt.
Hopefully this will help catch discrepancies between the usage
screen and the options that are accepted and ensure required
arguments are accounted for.

Signed-off-by: Trevor Woerner <twoerner at gmail.com>
---
 build.sh |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/build.sh b/build.sh
index 9e74c28..e766fa5 100755
--- a/build.sh
+++ b/build.sh
@@ -762,8 +762,14 @@ DIR_CONFIG="."
 LIB_ONLY=0
 
 # Process command line args
-while test $# != 0; do
-    case $1 in
+CMDLINE=`getopt -o abcdDf:ghlno:pr:s:L --long clone,autoresume:,check,help -n $0 -- "$@"`
+if test $? != 0; then
+    echo "getopt invocation error"
+    exit 1
+fi
+eval set -- "$CMDLINE"
+while true; do
+    case "$1" in
     -a)
 	NOAUTOGEN=1
 	;;
@@ -829,13 +835,19 @@ while test $# != 0; do
     -L)
 	LISTONLY=1
 	;;
+    --)
+	shift
+	break
+	;;
     *)
-	PREFIX=$1
+	echo "internal getopt error!"
+	exit 1
 	;;
     esac
 
     shift
 done
+PREFIX=$*
 
 if test x"${PREFIX}" = x && test -z "$LISTONLY"; then
     usage
-- 
1.7.1



More information about the xorg-devel mailing list