diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh index f474ff5e88e..5150b4f0218 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"' "$@" }