diff options
| author | Michael Biebl <biebl@debian.org> | 2015-01-22 00:29:39 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2015-01-22 00:29:39 +0100 |
| commit | 2c032d8f1c6292c1338a615e6ec40252889ba85c (patch) | |
| tree | 1f77182220b2b0264288ba4a476ab47e5bc48716 /tools/test-sudo-wrapper.sh | |
| parent | 33491bc4279481db8ae47213e34a6d695a0e8830 (diff) | |
Imported Upstream version 1.0.0 upstream/1.0.0
Diffstat (limited to 'tools/test-sudo-wrapper.sh')
| -rwxr-xr-x | tools/test-sudo-wrapper.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/test-sudo-wrapper.sh b/tools/test-sudo-wrapper.sh new file mode 100755 index 00000000..b375368e --- /dev/null +++ b/tools/test-sudo-wrapper.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +CMD="$1" +shift; + +# convert the libtool internal path +resolve_cmd() { + local C="$1" + + local C2="$(echo "$C" | sed 's#^\(.*/\)\.libs/lt-\([^/]\+\)$#\1\2#')" + if [[ "$C2" != "$C" && ! -x "$C2" ]]; then + # such a file does not exist... back to $C + C2="$C" + fi + echo "$C2" +} + +if [[ $UID == 0 ]]; then + # we are already root. Execute directly. + exec "$(resolve_cmd "$CMD")" "$@" +elif [[ "$NMTST_SUDO_NO_CALL_SELF" != "" ]]; then + # when setting $NMTST_SUDO_NO_CALL_SELF, pass the (resolved) command + # directly to sudo. + exec sudo "$(resolve_cmd "$CMD")" "$@" +else + # by default, call self again with sudo. + exec sudo -E "$0" "$CMD" "$@" +fi + |