about summary refs log tree commit diff
path: root/scripts/nix-unpack-closure.in
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2007-01-13T19·50+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2007-01-13T19·50+0000
commitafe23b5f385901ba5972ce88b2f053526c5097a9 (patch)
treefc65ae5a14e7260f130cd4417d7069b0ededdc60 /scripts/nix-unpack-closure.in
parentf25f9000451ec5b9fb3221cdf2a297fe24ab7357 (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-unpack-closure.in')
-rw-r--r--scripts/nix-unpack-closure.in9
1 files changed, 9 insertions, 0 deletions
diff --git a/scripts/nix-unpack-closure.in b/scripts/nix-unpack-closure.in
index 89e7aa24d5cb..2b60bb4851dd 100644
--- a/scripts/nix-unpack-closure.in
+++ b/scripts/nix-unpack-closure.in
@@ -77,3 +77,12 @@ closedir(DIR) or die;
 # Register the invalid paths as valid.
 system("nix-store --register-validity <'$tmpDir/validity'") == 0
     or die "nix-store --register-validity failed";
+
+
+# Show the top-level paths so that something useful can be done with
+# them, e.g., passing them to `nix-env -i'.
+if (-e "$tmpDir/unpacked/top-level") {
+    open TOPLEVEL, "<$tmpDir/unpacked/top-level" or die;
+    while (<TOPLEVEL>) { print "$_"; }
+    close TOPLEVEL;
+}