diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-05-08 20:00:28 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-05-08 20:00:28 +0000 |
commit | e3c07782d124cdd8d0aab2b498225cdca28cad66 (patch) | |
tree | 3f9b2f55448546c6f313b8497b389ce04f1e3972 /scripts | |
parent | c54287eafe8435e71634df3957cd5e30b97bb6a6 (diff) |
* Remove old manifests in `nix-channel --update'.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/nix-channel.in | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/scripts/nix-channel.in b/scripts/nix-channel.in index 772fb10cf..63a56616b 100644 --- a/scripts/nix-channel.in +++ b/scripts/nix-channel.in @@ -4,6 +4,9 @@ use strict; my $rootsDir = "@localstatedir@/nix/gcroots/channels"; +my $stateDir = $ENV{"NIX_STATE_DIR"}; +$stateDir = "@localstatedir@/nix" unless defined $stateDir; + # Figure out the name of the `.nix-channels' file to use. my $home = $ENV{"HOME"}; @@ -70,6 +73,11 @@ sub update { system "@bindir@/nix-store --clear-substitutes"; die "cannot clear substitutes" if ($? != 0); + # Remove all the old manifests. + for my $manifest (glob "$stateDir/manifests/*.nixmanifest") { + unlink $manifest or die "cannot remove `$manifest': $!"; + } + # Pull cache manifests. foreach my $url (@channels) { print "pulling cache manifest from `$url'\n"; |