diff options
author | Toolybird <toolybird@tuta.io> | 2023-05-24 16:31:57 +1000 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2023-05-26 01:06:14 +0200 |
commit | 71cb9e97bb584bcb7142abde715237fb8d0fa69e (patch) | |
tree | fe4cad81e4ad96f356b5ae8c50a57562dd73e9b3 | |
parent | 1b808b8e322effe8ca31a9c6d5be29e8a44e16e6 (diff) | |
download | devtools-71cb9e97bb584bcb7142abde715237fb8d0fa69e.tar.xz |
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 <toolybird@tuta.io>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
-rw-r--r-- | src/arch-nspawn.in | 5 | ||||
-rw-r--r-- | src/makerepropkg.in | 5 | ||||
-rw-r--r-- | 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 |