From 71cb9e97bb584bcb7142abde715237fb8d0fa69e Mon Sep 17 00:00:00 2001 From: Toolybird Date: Wed, 24 May 2023 16:31:57 +1000 Subject: fix(archroot): preserve original args for check_root before discarding arch-nspawn, mkarchroot, makerepropkg all call "shift" after getopts processing. Save the original args and pass on to check_root to prevent options being discarded. Fixes 41d4624879d01b1269d6af9c1440592a15ad7784 Fixes #149 Signed-off-by: Toolybird Signed-off-by: Levente Polyak --- src/arch-nspawn.in | 5 ++++- src/makerepropkg.in | 5 ++++- src/mkarchroot.in | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/arch-nspawn.in b/src/arch-nspawn.in index b692817..1453ba0 100644 --- a/src/arch-nspawn.in +++ b/src/arch-nspawn.in @@ -32,6 +32,9 @@ usage() { exit 1 } +# save all args for check_root +orig_args=("$@") + while getopts 'hC:M:c:f:s' arg; do case "$arg" in C) pac_conf="$OPTARG" ;; @@ -46,7 +49,7 @@ done shift $((OPTIND - 1)) (( $# < 1 )) && die 'You must specify a directory.' -check_root "" "${BASH_SOURCE[0]}" "$@" +check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" working_dir=$(readlink -f "$1") shift 1 diff --git a/src/makerepropkg.in b/src/makerepropkg.in index 61ee9db..398d4af 100644 --- a/src/makerepropkg.in +++ b/src/makerepropkg.in @@ -125,6 +125,9 @@ OPTIONS __EOF__ } +# save all args for check_root +orig_args=("$@") + while getopts 'dM:c:l:h' arg; do case "$arg" in d) diffoscope=1 ;; @@ -137,7 +140,7 @@ while getopts 'dM:c:l:h' arg; do done shift $((OPTIND - 1)) -check_root "" "${BASH_SOURCE[0]}" "$@" +check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" [[ -f PKGBUILD ]] || { error "No PKGBUILD in current directory."; exit 1; } diff --git a/src/mkarchroot.in b/src/mkarchroot.in index 610de16..fc60b4e 100644 --- a/src/mkarchroot.in +++ b/src/mkarchroot.in @@ -32,6 +32,9 @@ usage() { exit 1 } +# save all args for check_root +orig_args=("$@") + while getopts 'hUC:M:c:f:s' arg; do case "$arg" in U) umode=U ;; @@ -52,7 +55,7 @@ shift $((OPTIND - 1)) (( $# < 2 )) && die 'You must specify a directory and one or more packages.' -check_root "" "${BASH_SOURCE[0]}" "$@" +check_root "" "${BASH_SOURCE[0]}" "${orig_args[@]}" working_dir="$(readlink -f "$1")" shift 1 -- cgit v1.2.3-54-g00ecf