summary refs log tree commit diff
path: root/pkgs/build-support/setup-hooks
diff options
context:
space:
mode:
authorOrivej Desh <orivej@gmx.fr>2017-11-17 10:11:01 +0000
committerOrivej Desh <orivej@gmx.fr>2017-11-17 10:11:01 +0000
commit4199892768b412a22de303cb392b698887deecb4 (patch)
tree58cb32d17a3489dfab65ba2136c52a36f954fd49 /pkgs/build-support/setup-hooks
parent035b5892457d7d198090dc6a68cac2b99d2fec52 (diff)
downloadnixlib-4199892768b412a22de303cb392b698887deecb4.tar
nixlib-4199892768b412a22de303cb392b698887deecb4.tar.gz
nixlib-4199892768b412a22de303cb392b698887deecb4.tar.bz2
nixlib-4199892768b412a22de303cb392b698887deecb4.tar.lz
nixlib-4199892768b412a22de303cb392b698887deecb4.tar.xz
nixlib-4199892768b412a22de303cb392b698887deecb4.tar.zst
nixlib-4199892768b412a22de303cb392b698887deecb4.zip
makeWrapper: add --set-default and --set-eval
After #31497 starter quoting all values, there arouse the need to left some
values evaluated.

`--set-default var value` expands to `export var=${var-value}`, where value is
not evaluated and literally assigned to var unless it is already set.

`--set-eval var value` expands to `export var=$(eval echo value)`, where value
is evaluated by `eval`.
Diffstat (limited to 'pkgs/build-support/setup-hooks')
-rw-r--r--pkgs/build-support/setup-hooks/make-wrapper.sh10
1 files changed, 10 insertions, 0 deletions
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index 01410828d39d..ab24fb38b29e 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -48,6 +48,16 @@ makeWrapper() {
             value="${params[$((n + 2))]}"
             n=$((n + 2))
             echo "export $varName=${value@Q}" >> "$wrapper"
+        elif [[ "$p" == "--set-default" ]]; then
+            varName="${params[$((n + 1))]}"
+            value="${params[$((n + 2))]}"
+            n=$((n + 2))
+            echo "export $varName=\${$varName-${value@Q}}" >> "$wrapper"
+        elif [[ "$p" == "--set-eval" ]]; then
+            varName="${params[$((n + 1))]}"
+            value="${params[$((n + 2))]}"
+            n=$((n + 2))
+            echo "export $varName=\$(eval echo ${value@Q})" >> "$wrapper"
         elif [[ "$p" == "--unset" ]]; then
             varName="${params[$((n + 1))]}"
             n=$((n + 1))