* 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 {
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";

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
rm -rf $tmpPath1 $tmpPath2 || true
if test -n "$tmpPath1" -o -n "$tmpPath2"; then
rm -rf $tmpPath1 $tmpPath2 || true
fi
echo $hash

View File

@ -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";