Make: Fix src/scripts/tarball argument parsing

The test for -x uses non-portable operator ==.  Screwed up in commit
63c6dd6.  Fix by using getopts instead.

Missing mandatory arguments aren't diagnosed.  Screwed up in initial
commit 1991652, v4.3.0.  Fix by checking shift's return status.

The error message for missing argument of -C neglects to print $0 and
uses echo in a non-portable way.  Also screwed up in commit 1991652.
Fix the obvious way.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2017-09-03 10:07:15 +02:00
parent 8e8bed5865
commit b0bea7418a

View file

@ -1,20 +1,30 @@
#!/bin/sh -e
if [ $# = 0 ]; then
usage()
{
echo "Usage: $0 [-x TWEAK-SCRIPT ] NAME VERSION (FILE | -C DIR)..."
exit 1
fi
}
script=:
if [ "$1" == -x ]
then
script=$2
shift; shift
fi
while getopts x: opt
do
case $opt in
x)
script="$OPTARG"
;;
*)
usage; exit 1
;;
esac
done
shift $((OPTIND - 1))
name="$1"
version="$2"
shift; shift
if shift 2
then :
else usage; exit 1
fi
nv=$name-$version
mkdir $nv
@ -27,7 +37,7 @@ until [ $# = 0 ]; do
if [ "$1" = -C ]; then
dir="$2"
if shift 2; then continue; fi
echo "-C requires an argument" >&2
echo "$0: -C requires an argument" >&2
exit 1
fi
mkdir -p `dirname "$nv/$1"`