applets/install: accept more than one install option
authorYann E. MORIN <yann.morin.1998@free.fr>
Thu, 28 Dec 2017 22:49:48 +0000 (23:49 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 4 Jan 2018 13:43:46 +0000 (14:43 +0100)
Currently, it is impossible to pass more than one option to the isntall
script, so it totally prevents using --noclobber.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
applets/install.sh

index 4b70df96e227fa05be73830843fbb896b8013c44..ae99381d7ee6f71afe32a0ec0c6645f10117536a 100755 (executable)
@@ -8,6 +8,7 @@ if [ -z "$prefix" ]; then
        echo "usage: applets/install.sh DESTINATION [--symlinks/--hardlinks/--binaries/--scriptwrapper]"
        exit 1
 fi
+shift # Keep only remaining options
 
 # Source the configuration
 . ./.config
@@ -21,18 +22,21 @@ scriptwrapper="n"
 binaries="n"
 cleanup="0"
 noclobber="0"
-case "$2" in
-       --hardlinks)     linkopts="-f";;
-       --symlinks)      linkopts="-fs";;
-       --binaries)      binaries="y";;
-       --scriptwrapper) scriptwrapper="y";swrapall="y";;
-       --sw-sh-hard)    scriptwrapper="y";linkopts="-f";;
-       --sw-sh-sym)     scriptwrapper="y";linkopts="-fs";;
-       --cleanup)       cleanup="1";;
-       --noclobber)     noclobber="1";;
-       "")              h="";;
-       *)               echo "Unknown install option: $2"; exit 1;;
-esac
+while [ ${#} -gt 0 ]; do
+       case "$1" in
+               --hardlinks)     linkopts="-f";;
+               --symlinks)      linkopts="-fs";;
+               --binaries)      binaries="y";;
+               --scriptwrapper) scriptwrapper="y"; swrapall="y";;
+               --sw-sh-hard)    scriptwrapper="y"; linkopts="-f";;
+               --sw-sh-sym)     scriptwrapper="y"; linkopts="-fs";;
+               --cleanup)       cleanup="1";;
+               --noclobber)     noclobber="1";;
+               "")              h="";;
+               *)               echo "Unknown install option: $1"; exit 1;;
+       esac
+       shift
+done
 
 if [ -n "$DO_INSTALL_LIBS" ] && [ "$DO_INSTALL_LIBS" != "n" ]; then
        # get the target dir for the libs