tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

audit-packages.sh vs getopt



Hi:

No getopt on QNX :(  Here's a page from build.sh

-seanb
Index: audit-packages.sh.in
===================================================================
--- audit-packages.sh.in        
(.../vendor/HEAD/pkgsrc/pkgtools/pkg_install/files/admin/audit-packages.sh.in)  
(revision 136)
+++ audit-packages.sh.in        
(.../HEAD_640/pkgsrc/pkgtools/pkg_install/files/admin/audit-packages.sh.in)     
(revision 136)
@@ -24,26 +24,48 @@
 do_limit_type=
 do_print_var=
 
-args=`getopt F:K:Q:Vc:deg:h:n:p:qst:v $*`
-if [ $? -ne 0 ]; then
-       usage 1 2
+opts='F:K:Q:Vc:deg:h:n:p:qst:v'
+
+
+if type getopts >/dev/null 2>&1; then
+       # Use POSIX getopts.
+       #
+       getoptcmd='getopts ${opts} opt && opt=-${opt}'
+       optargcmd=':'
+       optremcmd='shift $((${OPTIND} -1))'
+else
+       type getopt >/dev/null 2>&1 ||
+           echo "/bin/sh shell is too old; try ksh or bash" && exit 1
+
+       # Use old-style getopt(1) (doesn't handle whitespace in args).
+       #
+       args="$(getopt ${opts} $*)"
+       if [ $? -ne 0 ]; then
+               usage 1 2
+       fi
+       set -- ${args}
+
+       getoptcmd='[ $# -gt 0 ] && opt="$1" && shift'
+       optargcmd='OPTARG="$1"; shift'
+       optremcmd=':'
 fi
 
-set -- $args
 
-while [ $# -gt 0 ]; do
-       case "$1" in
+
+
+while eval ${getoptcmd}; do
+       case ${opt} in
        -F)
-               do_check_file=$2
-               shift
+               eval ${optargcmd}
+               do_check_file=${OPTARG}
                ;;
        -K)
-               do_pkgdb="$1 $2"
-               shift
+               eval ${optargcmd}
+               do_pkgdb="${opt} ${OPTARG}"
                ;;
        -Q)
-               do_print_var="$2"
-               shift
+               eval ${optargcmd}
+               do_print_var="${OPTARG}"
                ;;
        -V)
                exec ${pkg_admin} -V
@@ -65,16 +87,16 @@
                exit 1
                ;;
        -h)
-               do_check_vul_file=$2
-               shift
+               eval ${optargcmd}
+               do_check_vul_file="${OPTARG}"
                ;;
        -n)
-               do_check_pattern=$2
-               shift
+               eval ${optargcmd}
+               do_check_pattern="${OPTARG}"
                ;;
        -p)
-               do_check_installed=$2
-               shift
+               eval ${optargcmd}
+               do_check_installed="${OPTARG}"
                ;;
        -q)
                do_quiet=-q
@@ -83,14 +105,13 @@
                do_sign=-s
                ;;
        -t)
-               do_limit_type="-t $2"
-               shift
+               eval ${optargcmd}
+               do_limit_type="${opt} ${OPTARG}"
                ;;
        -v)
                do_verbose="$do_verbose -v"
                ;;
        esac
-       shift
 done
 
 if [ -n "${do_fetch}" ]; then


Home | Main Index | Thread Index | Old Index