genimage.sh: fix calling from BR2_ROOTFS_POST_IMAGE_SCRIPT
authorAbhimanyu Vishwakarma <Abhimanyu.V@gmail.com>
Mon, 24 Apr 2017 05:24:45 +0000 (10:54 +0530)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 27 Apr 2017 20:55:52 +0000 (22:55 +0200)
When called from BR2_ROOTFS_POST_IMAGE_SCRIPT, this script
ends up with following error:

Error: Missing argument

This is because, an extra positional argument is also passed
along with BR2_ROOTFS_POST_SCRIPT_ARGS. genimage.sh didn't
have support to parse positional and optional arguments
together.

Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.V@gmail.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Rahul Bedarkar <rahulbedarkar89@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
support/scripts/genimage.sh

index 0ed0e8bcc2bca09dd573d6c77138f8bb5230002d..6c8d9e5ad302643c8022707224f1d8e7ef1f1fd7 100755 (executable)
@@ -5,13 +5,22 @@ die() {
   exit 1
 }
 
+# Parse arguments and put into argument list of the script
+opts="$(getopt -n "${0##*/}" -o c: -- "$@")" || exit $?
+eval set -- "$opts"
+
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
-while getopts c: OPT ; do
-       case "${OPT}" in
-       c) GENIMAGE_CFG="${OPTARG}";;
-       :) die "option '${OPTARG}' expects a mandatory argument\n";;
-       \?) die "unknown option '${OPTARG}'\n";;
+while true ; do
+       case "$1" in
+       -c)
+         GENIMAGE_CFG="${2}";
+         shift 2 ;;
+       --) # Discard all non-option parameters
+         shift 1;
+         break ;;
+       *)
+         die "unknown option '${1}'" ;;
        esac
 done