|
|
|
@ -11,16 +11,18 @@ assertExecutable() { |
|
|
|
|
# makeWrapper EXECUTABLE OUT_PATH ARGS |
|
|
|
|
|
|
|
|
|
# ARGS: |
|
|
|
|
# --argv0 NAME : set name of executed process to NAME |
|
|
|
|
# (otherwise it’s called …-wrapped) |
|
|
|
|
# --set VAR VAL : add VAR with value VAL to the executable’s |
|
|
|
|
# environment |
|
|
|
|
# --argv0 NAME : set the name of the executed process to NAME |
|
|
|
|
# (if unset or empty, defaults to EXECUTABLE) |
|
|
|
|
# --inherit-argv0 : the executable inherits argv0 from the wrapper. |
|
|
|
|
# (use instead of --argv0 '$0') |
|
|
|
|
# --set VAR VAL : add VAR with value VAL to the executable's environment |
|
|
|
|
# --set-default VAR VAL : like --set, but only adds VAR if not already set in |
|
|
|
|
# the environment |
|
|
|
|
# --unset VAR : remove VAR from the environment |
|
|
|
|
# --chdir DIR : change working directory (use instead of --run "cd DIR") |
|
|
|
|
# --run COMMAND : run command before the executable |
|
|
|
|
# --add-flags FLAGS : add FLAGS to invocation of executable |
|
|
|
|
# TODO(@ncfavier): --append-flags |
|
|
|
|
|
|
|
|
|
# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP |
|
|
|
|
# --suffix |
|
|
|
@ -166,6 +168,9 @@ makeShellWrapper() { |
|
|
|
|
elif [[ "$p" == "--argv0" ]]; then |
|
|
|
|
argv0="${params[$((n + 1))]}" |
|
|
|
|
n=$((n + 1)) |
|
|
|
|
elif [[ "$p" == "--inherit-argv0" ]]; then |
|
|
|
|
# Whichever comes last of --argv0 and --inherit-argv0 wins |
|
|
|
|
argv0='$0' |
|
|
|
|
else |
|
|
|
|
die "makeWrapper doesn't understand the arg $p" |
|
|
|
|
fi |
|
|
|
@ -206,7 +211,5 @@ wrapProgramShell() { |
|
|
|
|
hidden="${hidden}_" |
|
|
|
|
done |
|
|
|
|
mv "$prog" "$hidden" |
|
|
|
|
# Silence warning about unexpanded $0: |
|
|
|
|
# shellcheck disable=SC2016 |
|
|
|
|
makeWrapper "$hidden" "$prog" --argv0 '$0' "${@:2}" |
|
|
|
|
makeWrapper "$hidden" "$prog" --inherit-argv0 "${@:2}" |
|
|
|
|
} |
|
|
|
|