aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2008-11-18 14:43:40 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2008-11-18 14:43:40 +0000
commitfa791116a35479bd295f5666c8d35fba60e0c98d (patch)
tree8b0ec403ac381b15dffaf61ef04fe0a8b221cfe7 /scripts
parent3f4ed681c2e16ab7a73e31835a6a7e29d5857dd7 (diff)
* Get rid of nix-pack-closure / nix-unpack-closure, they're redundant.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am2
-rw-r--r--scripts/nix-pack-closure.in75
-rw-r--r--scripts/nix-unpack-closure.in88
3 files changed, 0 insertions, 165 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 662384b59..0e8443e9c 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -1,7 +1,6 @@
bin_SCRIPTS = nix-collect-garbage \
nix-pull nix-push nix-prefetch-url \
nix-install-package nix-channel nix-build \
- nix-pack-closure nix-unpack-closure \
nix-copy-closure
noinst_SCRIPTS = nix-profile.sh generate-patches.pl \
@@ -36,7 +35,6 @@ EXTRA_DIST = nix-collect-garbage.in \
download-using-manifests.pl.in \
copy-from-other-stores.pl.in \
generate-patches.pl.in \
- nix-pack-closure.in nix-unpack-closure.in \
nix-copy-closure.in \
find-runtime-roots.pl.in \
build-remote.pl.in \
diff --git a/scripts/nix-pack-closure.in b/scripts/nix-pack-closure.in
deleted file mode 100644
index 0634537d0..000000000
--- a/scripts/nix-pack-closure.in
+++ /dev/null
@@ -1,75 +0,0 @@
-#! @perl@ -w
-
-# This tool computes the closure of a path (using "nix-store --query
-# --requisites") and puts the contents of each path in the closure in
-# a big NAR archive that can be installed on another Nix installation
-# using "nix-unpack-closure".
-
-# TODO: make this program "streamy", i.e., don't use a temporary
-# directory.
-
-use strict;
-use File::Temp qw(tempdir);
-
-my $binDir = $ENV{"NIX_BIN_DIR"};
-$binDir = "@bindir@" unless defined $binDir;
-
-my $tmpDir = tempdir("nix-pack-closure.XXXXXX", CLEANUP => 1, TMPDIR => 1)
- or die "cannot create a temporary directory";
-
-mkdir "$tmpDir/contents", 0755 or die;
-mkdir "$tmpDir/references", 0755 or die;
-mkdir "$tmpDir/derivers", 0755 or die;
-
-open TOPLEVEL, ">$tmpDir/top-level" or die;
-
-
-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;
-
- while (<READ>) {
- chomp;
- die "bad: $_" unless /^\//;
- $storePaths{$_} = "";
- }
-
- close READ or die "nix-store failed: $?";
-}
-
-
-close TOPLEVEL or die;
-
-
-foreach my $storePath (sort(keys %storePaths)) {
- print STDERR "packing `$storePath'...\n";
-
- $storePath =~ /\/([^\/]+)$/;
- my $name = $1;
-
- system("$binDir/nix-store --dump '$storePath' > $tmpDir/contents/$name") == 0
- or die "nix-store --dump failed on `$storePath': $?";
-
- system("$binDir/nix-store --query --references '$storePath' > $tmpDir/references/$name") == 0
- or die "nix-store --query --references failed on `$storePath': $?";
-
- system("$binDir/nix-store --query --deriver '$storePath' > $tmpDir/derivers/$name") == 0
- or die "nix-store --query --deriver failed on `$storePath': $?";
-}
-
-
-# Write a NAR archive of everything to standard output.
-system("nix-store --dump '$tmpDir'") == 0
- or die "nix-store --dump failed";
diff --git a/scripts/nix-unpack-closure.in b/scripts/nix-unpack-closure.in
deleted file mode 100644
index 2b60bb485..000000000
--- a/scripts/nix-unpack-closure.in
+++ /dev/null
@@ -1,88 +0,0 @@
-#! @perl@ -w
-
-# This tool unpacks the closures created by "nix-pack-closure" and
-# adds them to the Nix store.
-
-# TODO: make this program "streamy", i.e., don't use a temporary
-# directory.
-
-use strict;
-use File::Temp qw(tempdir);
-
-my $binDir = $ENV{"NIX_BIN_DIR"};
-$binDir = "@bindir@" unless defined $binDir;
-
-my $tmpDir = tempdir("nix-unpack-closure.XXXXXX", CLEANUP => 1, TMPDIR => 1)
- or die "cannot create a temporary directory";
-
-
-# Unpack the NAR archive on standard input.
-system("nix-store --restore '$tmpDir/unpacked'") == 0
- or die "nix-store --restore failed";
-
-
-open VALID, ">$tmpDir/validity" or die;
-
-
-# For each path in the closure that is not yet valid, add it to the
-# store. TODO: use proper locking. Or even better, let nix-store do
-# this.
-opendir(DIR, "$tmpDir/unpacked/contents") or die "cannot open directory: $!";
-
-foreach my $name (sort(readdir DIR)) {
- next if $name eq "." or $name eq "..";
-
- my $storePath = "@storedir@/$name"; # !!!
-
- # !!! this really isn't a good validity check!
- system "$binDir/nix-store --check-validity '$storePath' 2> /dev/null";
- if ($? != 0) {
- print STDERR "unpacking `$storePath'...\n";
-
- # !!! race
- system("@coreutils@/rm -rf '$storePath'") == 0
- or die "cannot remove `$storePath': $?";
-
- system("$binDir/nix-store --restore '$storePath' < '$tmpDir/unpacked/contents/$name'") == 0
- or die "nix-store --dump failed on `$storePath': $?";
-
- print VALID "$storePath\n";
-
- open DRV, "<$tmpDir/unpacked/derivers/$name" or die;
- my $deriver = <DRV>;
- chomp $deriver;
- $deriver = "" if $deriver eq "unknown-deriver";
- close DRV;
-
- my @refs;
- open REFS, "<$tmpDir/unpacked/references/$name" or die;
- while (<REFS>) {
- chomp;
- push @refs, $_;
- }
- close REFS;
-
- print VALID "$deriver\n";
-
- print VALID (scalar @refs), "\n";
- foreach my $ref (@refs) {
- print VALID "$ref\n";
- }
- }
-}
-
-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;
-}