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 {
|
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";
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
|
|
Loading…
Reference in a new issue