about summary refs log tree commit diff
path: root/src/nix-populate
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix-populate')
-rwxr-xr-xsrc/nix-populate89
1 files changed, 0 insertions, 89 deletions
diff --git a/src/nix-populate b/src/nix-populate
deleted file mode 100755
index 50819d6664d4..000000000000
--- a/src/nix-populate
+++ /dev/null
@@ -1,89 +0,0 @@
-#! /usr/bin/perl -w
-
-use strict;
-
-my $pkglist = $ENV{"NIX_ACTIVATIONS"};
-$pkglist or die "NIX_ACTIVATIONS not set";
-my $linkdir = $ENV{"NIX_LINKS"};
-$linkdir or die "NIX_LINKS not set";
-my @dirs = ("bin", "sbin", "lib", "include");
-
-# Figure out a generation number.
-my $nr = 1;
-while (-e "$linkdir/$nr") { $nr++; }
-my $gendir = "$linkdir/$nr";
-print "populating $gendir\n";
-
-# Create the subdirectories.
-mkdir $gendir;
-foreach my $dir (@dirs) {
-    mkdir "$gendir/$dir";
-}
-
-# For each activated package, create symlinks.
-
-sub createLinks {
-    my $srcdir = shift;
-    my $dstdir = shift;
-
-    my @srcfiles = glob("$srcdir/*");
-
-    foreach my $srcfile (@srcfiles) {
-	my $basename = $srcfile;
-	$basename =~ s/^.*\///g; # strip directory
-	my $dstfile = "$dstdir/$basename";
-	if (-d $srcfile) {
-	    # !!! hack for resolving name clashes
-	    if (!-e $dstfile) {
-		mkdir($dstfile) or 
-		    die "error creating directory $dstfile";
-	    }
-	    -d $dstfile or die "$dstfile is not a directory";
-	    createLinks($srcfile, $dstfile);
-	} elsif (-l $dstfile) {
-	    my $target = readlink($dstfile);
-	    die "collission between $srcfile and $target";
-	} else {
-	    print "linking $dstfile to $srcfile\n";
-	    symlink($srcfile, $dstfile) or
-		die "error creating link $dstfile";
-	}
-    }
-}
-
-
-open PKGS, "< $pkglist";
-
-while (<PKGS>) {
-    chomp;
-    my $hash = $_;
-    
-    my $pkgdir = `nix getpkg $hash`;
-    if ($?) { die "`nix getpkg' failed"; }
-    chomp $pkgdir;
-
-    print "merging $pkgdir\n";
-
-    foreach my $dir (@dirs) {
-	createLinks("$pkgdir/$dir", "$gendir/$dir");
-    }
-}
-
-close PKGS;
-
-# Make $gendir the current generation by pointing $linkdir/current to
-# it.  The rename() system call is supposed to be essentially atomic
-# on Unix.  That is, if we have links `current -> X' and `new_current
-# -> Y', and we rename new_current to current, a process accessing
-# current will see X or Y, but never a file-not-found or other error
-# condition.  This is sufficient to atomically switch the current link
-# tree.
-
-my $current = "$linkdir/current";
-
-print "switching $current to $gendir\n"; 
-
-my $tmplink = "$linkdir/new_current";
-symlink($gendir, $tmplink) or die "cannot create $tmplink";
-rename($tmplink, $current) or die "cannot rename $tmplink";
-