about summary refs log tree commit diff
path: root/tests/substituter.sh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2008-08-02T12·54+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2008-08-02T12·54+0000
commit3c92ea399d717dc45b3fa91424c0dadc0239ebf2 (patch)
tree7cde9f533a6ee575615da5452e04c05dc0939f02 /tests/substituter.sh
parentfc691e1cbdcddb8c553cba06d4089bc1b60e3d98 (diff)
* Make nix-env --dry-run print the paths to be substituted correctly
  again.  (After the previous substituter mechanism refactoring I
  didn't update the code that obtains the references of substitutable
  paths.)  This required some refactoring: the substituter programs
  are now kept running and receive/respond to info requests via
  stdin/stdout.

Diffstat (limited to 'tests/substituter.sh')
-rwxr-xr-xtests/substituter.sh27
1 files changed, 19 insertions, 8 deletions
diff --git a/tests/substituter.sh b/tests/substituter.sh
index 96fb95b91f..b244b30e83 100755
--- a/tests/substituter.sh
+++ b/tests/substituter.sh
@@ -1,14 +1,25 @@
 #! /bin/sh -e
 echo substituter args: $* >&2
 
-if test $1 = "--query-paths"; then
-    cat $TEST_ROOT/sub-paths
-elif test $1 = "--query-info"; then
-    shift
-    for i in in $@; do
-        echo $i
-        echo "" # deriver
-        echo 0 # nr of refs
+if test $1 = "--query"; then
+    while read cmd; do
+        echo FOO $cmd >&2
+        if test "$cmd" = "have"; then
+            read path
+            if grep -q "$path" $TEST_ROOT/sub-paths; then
+                echo 1
+            else
+                echo 0
+            fi
+        elif test "$cmd" = "info"; then
+            read path
+            echo 1
+            echo "" # deriver
+            echo 0 # nr of refs
+        else
+            echo "bad command $cmd"
+            exit 1
+        fi
     done
 elif test $1 = "--substitute"; then
     mkdir $2