From 64da82731d44371a88625af875848482b3b436bc Mon Sep 17 00:00:00 2001 From: Tobias Bergkvist Date: Thu, 2 Dec 2021 03:39:25 +0100 Subject: [PATCH] Add new argument: --chdir DIR (alternative to --run "cd DIR" in makeWrapper) --- .../setup-hooks/make-binary-wrapper.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh index 7642a2398642..fa02d59ef46a 100644 --- a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh +++ b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh @@ -21,6 +21,7 @@ assertExecutable() { # --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") # --add-flags FLAGS : add FLAGS to invocation of executable # --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP @@ -117,6 +118,14 @@ makeCWrapper() { n=$((n + 3)) [ $n -ge "$length" ] && main="$main #error makeCWrapper: $p takes 3 arguments"$'\n' ;; + --chdir) + cmd=$(changeDir "${params[n + 1]}") + main="$main $cmd"$'\n' + uses_stdio=1 + uses_assert_success=1 + n=$((n + 1)) + [ $n -ge "$length" ] && main="$main #error makeCWrapper: $p takes 1 argument"$'\n' + ;; --add-flags) flags="${params[n + 1]}" flagsBefore="$flagsBefore $flags" @@ -176,6 +185,13 @@ addFlags() { printf ' %s\n' "argv = $var;" } +# chdir DIR +changeDir() { + local dir + dir=$(escapeStringLiteral "$1") + printf '%s' "assert_success(chdir(\"$dir\"));" +} + # prefix ENV SEP VAL setEnvPrefix() { local env sep val