2004-03-15 15:23:53 +00:00
|
|
|
#! @perl@ -w
|
2003-11-24 11:11:40 +00:00
|
|
|
|
|
|
|
use strict;
|
|
|
|
use POSIX qw(tmpnam);
|
|
|
|
|
|
|
|
my $pkgfile = $ARGV[0];
|
|
|
|
die unless defined $pkgfile;
|
|
|
|
|
|
|
|
my $tmpdir;
|
|
|
|
do { $tmpdir = tmpnam(); }
|
|
|
|
until mkdir $tmpdir, 0777;
|
|
|
|
|
|
|
|
# !!! remove tmpdir on exit
|
|
|
|
|
2004-01-14 11:13:08 +00:00
|
|
|
print "Unpacking $pkgfile in $tmpdir...\n";
|
2003-11-24 11:11:40 +00:00
|
|
|
system "bunzip2 < $pkgfile | (cd $tmpdir && tar xf -)";
|
|
|
|
die if $?;
|
|
|
|
|
2004-01-14 11:13:08 +00:00
|
|
|
print "This package contains the following derivations:\n";
|
|
|
|
system "nix-env -qasf $tmpdir/default.nix";
|
2003-11-24 11:11:40 +00:00
|
|
|
die if $?;
|
|
|
|
|
2004-01-14 11:13:08 +00:00
|
|
|
print "Do you wish to install these (Y/N)? ";
|
2003-11-24 11:11:40 +00:00
|
|
|
my $reply = <STDIN>;
|
|
|
|
chomp $reply;
|
|
|
|
exit if (!($reply eq "y"));
|
|
|
|
|
2004-01-14 11:13:08 +00:00
|
|
|
print "Pulling caches...\n";
|
2003-11-24 11:11:40 +00:00
|
|
|
system "nix-pull `cat $tmpdir/caches`";
|
|
|
|
die if $?;
|
|
|
|
|
2004-01-14 11:13:08 +00:00
|
|
|
print "Installing package...\n";
|
|
|
|
system "nix-env -if $tmpdir/default.nix '*'";
|
2003-11-24 11:11:40 +00:00
|
|
|
die if $?;
|
|
|
|
|
2004-01-14 11:13:08 +00:00
|
|
|
print "Installation succeeded! Press Enter to continue.\n";
|
2003-11-24 11:11:40 +00:00
|
|
|
<STDIN>;
|