diff options
author | Thomas Tuegel <ttuegel@gmail.com> | 2015-08-30 10:41:43 -0500 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-09-01 13:27:12 +0200 |
commit | 61cad61ebf40416dd9749f5a50b95f4ca12ce59f (patch) | |
tree | 741e8dc58a84495a3655169b859727d924c3290f /pkgs/build-support/setup-hooks | |
parent | 1464a4de57a07bd10827283c3d41b03bea9cc63d (diff) | |
download | nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.tar nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.tar.gz nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.tar.bz2 nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.tar.lz nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.tar.xz nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.tar.zst nixlib-61cad61ebf40416dd9749f5a50b95f4ca12ce59f.zip |
makeWrapper: accept `--argv0` flag (/cc #9562)
By default `makeWrapper` will not set argv[0] (this is a reversion to the old default behavior). Based on the breakage we have seen from changing the default, this is what most people want. The `wrapProgram` function will send `--argv0 '"$0"'` to `makeWrapper`, i.e. it will continue to pass-through the argv[0] that the wrapper is called with.
Diffstat (limited to 'pkgs/build-support/setup-hooks')
-rw-r--r-- | pkgs/build-support/setup-hooks/make-wrapper.sh | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh index f474ff5e88ed..5150b4f0218a 100644 --- a/pkgs/build-support/setup-hooks/make-wrapper.sh +++ b/pkgs/build-support/setup-hooks/make-wrapper.sh @@ -2,7 +2,7 @@ makeWrapper() { local original=$1 local wrapper=$2 local params varName value command separator n fileNames - local flagsBefore flags + local argv0 flagsBefore flags mkdir -p "$(dirname $wrapper)" @@ -68,11 +68,17 @@ makeWrapper() { n=$((n + 1)) flagsBefore="$flagsBefore $flags" fi + + if test "$p" = "--argv0"; then + argv0=${params[$((n + 1))]} + n=$((n + 1)) + fi done # Note: extraFlagsArray is an array containing additional flags # that may be set by --run actions. - echo exec -a '"$0"' "$original" $flagsBefore '"${extraFlagsArray[@]}"' '"$@"' >> $wrapper + echo exec ${argv0:+-a $argv0} "$original" \ + $flagsBefore '"${extraFlagsArray[@]}"' '"$@"' >> $wrapper chmod +x $wrapper } @@ -98,5 +104,5 @@ wrapProgram() { local prog="$1" local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped mv $prog $hidden - makeWrapper $hidden $prog "$@" + makeWrapper $hidden $prog --argv0 '"$0"' "$@" } |