diff options
author | Levente Polyak <anthraxx@archlinux.org> | 2023-05-20 00:20:41 +0200 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2023-05-20 00:20:41 +0200 |
commit | 41d4624879d01b1269d6af9c1440592a15ad7784 (patch) | |
tree | 51dddceb749e2cb8c8bfbe9138cc58fb604b0d94 /src/lib | |
parent | 4d3ab0b489f05565cec0a741564f8ba6ec57a9d6 (diff) | |
download | devtools-c5397cc770f5cd180de8ad28ebda00189fda1a08.tar.xz |
fix(archroot): pass along the real command and argv by the caller1.0.0rc1
Before modularizing the repo layout, we used m4_include to assemble
together sources into a single file. Now, we properly use a library
layout without assembling multiple files, which means we cannot anymore
rely on BASH_SOURCE inside the library file. Hence, pass along the
actual command and argv from the check_root caller.
Fixes: src: modularize repo layout into a library
Signed-off-by: Morten Linderud <foxboron@archlinux.org>
Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/archroot.sh | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/archroot.sh b/src/lib/archroot.sh index d7917da..3f48dc1 100644 --- a/src/lib/archroot.sh +++ b/src/lib/archroot.sh @@ -9,13 +9,14 @@ CHROOT_VERSION='v4' ## # usage : check_root $keepenv ## -orig_argv=("${BASH_SOURCE[0]}" "$@") check_root() { local keepenv=$1 + shift + local orig_argv=("$@") (( EUID == 0 )) && return if type -P sudo >/dev/null; then - exec sudo --preserve-env=$keepenv -- "${orig_argv[@]}" + exec sudo --preserve-env="${keepenv}" -- "${orig_argv[@]}" else exec su root -c "$(printf ' %q' "${orig_argv[@]}")" fi |