r4505 - dists/trunk/utils/initrd-tools
Jonas Smedegaard
js at costa.debian.org
Mon Oct 17 08:40:20 UTC 2005
Author: js
Date: 2005-10-17 08:40:19 +0000 (Mon, 17 Oct 2005)
New Revision: 4505
Modified:
dists/trunk/utils/initrd-tools/mkinitrd
Log:
Use GNU getopt (instead of bash builtin getopts) for improved long-opts handling.
Modified: dists/trunk/utils/initrd-tools/mkinitrd
===================================================================
--- dists/trunk/utils/initrd-tools/mkinitrd 2005-10-17 07:27:40 UTC (rev 4504)
+++ dists/trunk/utils/initrd-tools/mkinitrd 2005-10-17 08:40:19 UTC (rev 4505)
@@ -1309,51 +1309,62 @@
CONFDIR=/etc/mkinitrd
unset keep croot cmkimage out || :
-while getopts "d:km:o:r:-:" flag; do
- case $flag in
- d)
- CONFDIR="$OPTARG"
+TEMP=`getopt -o d:km:o:r: --long supported-host-version:,supported-target-version: -n "$PROG" -- "$@"`
+
+# Check for non-GNU getopt
+if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+
+eval set -- "$TEMP"
+
+while true ; do
+ case "$1" in
+ -d)
+ CONFDIR="$2"
+ shift 2
if [ ! -d "$CONFDIR" ]; then
echo "$PROG: $CONFDIR: Not a directory" >&2
exit 1
fi
[ -z "${CONFDIR##/*}" ] || CONFDIR="$ORIGDIR/$CONFDIR"
;;
- k)
+ -k)
keep=yes
+ shift 1
;;
- m)
- cmkimage=$OPTARG
+ -m)
+ cmkimage=$2
+ shift 2
;;
- o)
- initrd_file="${OPTARG}"
+ -o)
+ initrd_file="$2"
+ shift 2
if [ "$initrd_file" = "${initrd_file#/}" ]; then
initrd_file="${ORIGDIR}/$initrd_file"
fi
out=yes
;;
- r)
- croot=$OPTARG
+ -r)
+ croot=$2
+ shift 2
;;
- -)
- case ${OPTARG%=*} in
- supported-host-version)
- supported_host_version=${OPTARG#*=}
- ;;
- supported-target-version)
- supported_target_version=${OPTARG#*=}
- ;;
- *)
- usage
- ;;
- esac
+ --supported-host-version)
+ supported_host_version="$2"
+ shift 2
;;
+ --supported-target-version)
+ supported_target_version="$2"
+ shift 2
+ ;;
+ --)
+ shift
+ break
+ ;;
*)
+ echo "Internal error!" >&2
usage
;;
esac
done
-shift $(($OPTIND - 1))
if [ "$supported_host_version" ] || [ "$supported_target_version" ]; then
if [ "$supported_host_version" ]; then
More information about the Kernel-svn-changes
mailing list