forked from lix-project/lix
* Sync with changed substitute mechanism.
* Accept the NarHash line. * Clear substitutes in `nix-channel --update'.
This commit is contained in:
parent
96c3d8a615
commit
7eed57e784
|
@ -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";
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in a new issue