[git commit] applets/install: accept more than one install option

Denys Vlasenko vda.linux at googlemail.com
Thu Jan 4 13:43:46 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=952d5a6024e7b2a6d5a351a8d1329bd985da3c76
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

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 at free.fr>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 applets/install.sh | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/applets/install.sh b/applets/install.sh
index 4b70df9..ae99381 100755
--- a/applets/install.sh
+++ b/applets/install.sh
@@ -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


More information about the busybox-cvs mailing list