about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-12-20T14·57+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-12-20T14·57+0000
commit7eed57e784068ae6e2e9bf4409639067df467cd3 (patch)
tree9424c5e456887a896593bc63ddcf0dd7916ba0fd
parent96c3d8a61550545549dfa31c62e68d16f4e89c0c (diff)
* Sync with changed substitute mechanism.
* Accept the NarHash line.
* Clear substitutes in `nix-channel --update'.

-rwxr-xr-xscripts/nix-channel.in4
-rw-r--r--scripts/nix-prefetch-url.in4
-rw-r--r--scripts/nix-pull.in9
3 files changed, 11 insertions, 6 deletions
diff --git a/scripts/nix-channel.in b/scripts/nix-channel.in
index 1733afceb384..3c99f454c6f8 100755
--- a/scripts/nix-channel.in
+++ b/scripts/nix-channel.in
@@ -53,6 +53,10 @@ sub addChannel {
 sub update {
     readChannels;
 
+    # Get rid of all the old substitutes.
+    system "@bindir@/nix-store --clear-substitutes";
+    die "cannot clear substitutes" if ($? != 0);
+
     # Pull cache manifests.
     foreach my $url (@channels) {
         print "pulling cache manifest from `$url'\n";
diff --git a/scripts/nix-prefetch-url.in b/scripts/nix-prefetch-url.in
index 32f40b5ae6ca..9a67ca1417f2 100644
--- a/scripts/nix-prefetch-url.in
+++ b/scripts/nix-prefetch-url.in
@@ -49,7 +49,9 @@ finalPath=$(@bindir@/nix-store -qnB --force-realise $storeExpr)
     
 if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
 
-rm -rf $tmpPath1 $tmpPath2 || true
+if test -n "$tmpPath1" -o -n "$tmpPath2"; then
+    rm -rf $tmpPath1 $tmpPath2 || true
+fi
 
 echo $hash
 
diff --git a/scripts/nix-pull.in b/scripts/nix-pull.in
index a06ee7e57520..d2c38d0ca12e 100644
--- a/scripts/nix-pull.in
+++ b/scripts/nix-pull.in
@@ -48,10 +48,10 @@ my $nixExpr =
     "(import @datadir@/nix/corepkgs/nix-pull) " .
     "{system = \"@system@\";}";
 
-print STDERR "instantiating store expression...\n";
-my $storeExpr = `echo '$nixExpr' | @bindir@/nix-instantiate -`
+print STDERR "building downloader...\n";
+my $substProgram = `echo '$nixExpr' | @bindir@/nix-store -qnf \$(@bindir@/nix-instantiate -)`
     or die "cannot instantiate Nix expression";
-chomp $storeExpr;
+chomp $substProgram;
 
 
 # Register all substitutes.
@@ -66,8 +66,7 @@ foreach my $storePath (keys %narFiles) {
     my $narFileList = $narFiles{$storePath};
     foreach my $narFile (@{$narFileList}) {
         print WRITE "$storePath\n";
-        print WRITE "$storeExpr\n";
-        print WRITE "/fetch\n";
+        print WRITE "$substProgram/fetch\n";
         print WRITE "2\n";
         print WRITE "$narFile->{url}\n";
         print WRITE "$narFile->{hash}\n";