summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-11-12 12:52:51 -0600
committerGitHub <noreply@github.com>2018-11-12 12:52:51 -0600
commitf19bb8321aad93efd9c024f9b7f6eca49db1d4c8 (patch)
tree09aad93b7f848852ca71ab5d0eef511ced53326f
parent3b052406eaaa466240b948d05b0e483272317e6a (diff)
parent5ff872aa24983cf3e1cf28bb990042846c1a97ee (diff)
downloadnixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.tar
nixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.tar.gz
nixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.tar.bz2
nixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.tar.lz
nixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.tar.xz
nixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.tar.zst
nixpkgs-f19bb8321aad93efd9c024f9b7f6eca49db1d4c8.zip
Merge pull request #35304 from volth/patch-97
[staging] substitute() print warning if does nothing
-rw-r--r--pkgs/stdenv/generic/setup.sh21
1 files changed, 15 insertions, 6 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 81c1725f1d1..336e229c6a3 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -645,7 +645,8 @@ fi
 
 substituteStream() {
     local var=$1
-    shift
+    local description=$2
+    shift 2
 
     while (( "$#" )); do
         case "$1" in
@@ -653,6 +654,14 @@ substituteStream() {
                 pattern="$2"
                 replacement="$3"
                 shift 3
+                local savedvar
+                savedvar="${!var}"
+                eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
+                if [ "$pattern" != "$replacement" ]; then
+                    if [ "${!var}" == "$savedvar" ]; then
+                        echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" >&2
+                    fi
+                fi
                 ;;
 
             --subst-var)
@@ -669,11 +678,13 @@ substituteStream() {
                 fi
                 pattern="@$varName@"
                 replacement="${!varName}"
+                eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
                 ;;
 
             --subst-var-by)
                 pattern="@$2@"
                 replacement="$3"
+                eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
                 shift 3
                 ;;
 
@@ -682,8 +693,6 @@ substituteStream() {
                 return 1
                 ;;
         esac
-
-        eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
     done
 
     printf "%s" "${!var}"
@@ -711,7 +720,7 @@ substitute() {
     consumeEntire content < "$input"
 
     if [ -e "$output" ]; then chmod +w "$output"; fi
-    substituteStream content "$@" > "$output"
+    substituteStream content "file '$input'" "$@" > "$output"
 }
 
 substituteInPlace() {
@@ -733,7 +742,7 @@ substituteAllStream() {
     local -a args=()
     _allFlags
 
-    substituteStream "$1" "${args[@]}"
+    substituteStream "$1" "$2" "${args[@]}"
 }
 
 # Substitute all environment variables that start with a lowercase character and
@@ -1144,7 +1153,7 @@ fixupPhase() {
         for hook in $setupHooks; do
             local content
             consumeEntire content < "$hook"
-            substituteAllStream content >> "${!outputDev}/nix-support/setup-hook"
+            substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook"
             unset -v content
         done
         unset -v hook