* Sync with changed substitute mechanism.

* Accept the NarHash line.
* Clear substitutes in `nix-channel --update'.
This commit is contained in:
Eelco Dolstra 2004-12-20 14:57:03 +00:00
parent 96c3d8a615
commit 7eed57e784
3 changed files with 11 additions and 6 deletions

View file

@ -53,6 +53,10 @@ sub addChannel {
sub update { sub update {
readChannels; readChannels;
# Get rid of all the old substitutes.
system "@bindir@/nix-store --clear-substitutes";
die "cannot clear substitutes" if ($? != 0);
# Pull cache manifests. # Pull cache manifests.
foreach my $url (@channels) { foreach my $url (@channels) {
print "pulling cache manifest from `$url'\n"; print "pulling cache manifest from `$url'\n";

View file

@ -49,7 +49,9 @@ finalPath=$(@bindir@/nix-store -qnB --force-realise $storeExpr)
if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi if ! test -n "$QUIET"; then echo "path is $finalPath" >&2; fi
if test -n "$tmpPath1" -o -n "$tmpPath2"; then
rm -rf $tmpPath1 $tmpPath2 || true rm -rf $tmpPath1 $tmpPath2 || true
fi
echo $hash echo $hash

View file

@ -48,10 +48,10 @@ my $nixExpr =
"(import @datadir@/nix/corepkgs/nix-pull) " . "(import @datadir@/nix/corepkgs/nix-pull) " .
"{system = \"@system@\";}"; "{system = \"@system@\";}";
print STDERR "instantiating store expression...\n"; print STDERR "building downloader...\n";
my $storeExpr = `echo '$nixExpr' | @bindir@/nix-instantiate -` my $substProgram = `echo '$nixExpr' | @bindir@/nix-store -qnf \$(@bindir@/nix-instantiate -)`
or die "cannot instantiate Nix expression"; or die "cannot instantiate Nix expression";
chomp $storeExpr; chomp $substProgram;
# Register all substitutes. # Register all substitutes.
@ -66,8 +66,7 @@ foreach my $storePath (keys %narFiles) {
my $narFileList = $narFiles{$storePath}; my $narFileList = $narFiles{$storePath};
foreach my $narFile (@{$narFileList}) { foreach my $narFile (@{$narFileList}) {
print WRITE "$storePath\n"; print WRITE "$storePath\n";
print WRITE "$storeExpr\n"; print WRITE "$substProgram/fetch\n";
print WRITE "/fetch\n";
print WRITE "2\n"; print WRITE "2\n";
print WRITE "$narFile->{url}\n"; print WRITE "$narFile->{url}\n";
print WRITE "$narFile->{hash}\n"; print WRITE "$narFile->{hash}\n";