diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-01-13T19·50+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-01-13T19·50+0000 |
commit | afe23b5f385901ba5972ce88b2f053526c5097a9 (patch) | |
tree | fc65ae5a14e7260f130cd4417d7069b0ededdc60 /scripts/nix-pack-closure.in | |
parent | f25f9000451ec5b9fb3221cdf2a297fe24ab7357 (diff) |
* nix-pack-closure: store the top-level store paths in the closure.
* nix-unpack-closure: extract the top-level paths from the closure and print them on stdout. This allows them to be installed, e.g., "nix-env -i $(nix-unpack-closure)". (NIX-64)
Diffstat (limited to 'scripts/nix-pack-closure.in')
-rw-r--r-- | scripts/nix-pack-closure.in | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/scripts/nix-pack-closure.in b/scripts/nix-pack-closure.in index 6c0e85d2a69a..bc58097e25c1 100644 --- a/scripts/nix-pack-closure.in +++ b/scripts/nix-pack-closure.in @@ -21,6 +21,7 @@ mkdir "$tmpDir/contents", 0777 or die; mkdir "$tmpDir/references", 0777 or die; mkdir "$tmpDir/derivers", 0777 or die; +open TOPLEVEL, ">$tmpDir/top-level" or die; my %storePaths; @@ -29,6 +30,12 @@ my %storePaths; while (@ARGV) { my $storePath = shift @ARGV; + # $storePath might be a symlink to the store, so resolve it. + $storePath = (`$binDir/nix-store --query --resolve '$storePath'` + or die "cannot resolve `$storePath'"); + chomp $storePath; + print TOPLEVEL $storePath, "\n"; + # Get the closure of this path. my $pid = open(READ, "$binDir/nix-store --query --requisites '$storePath'|") or die; |