From 4199892768b412a22de303cb392b698887deecb4 Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Fri, 17 Nov 2017 10:11:01 +0000 Subject: [PATCH] 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`. --- pkgs/build-support/setup-hooks/make-wrapper.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh index 01410828d39..ab24fb38b29 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))