* One-click installation :-)
The script nix-install-package takes a `Nix package file' (which contains one or more derivations, along with URLs of Nix caches), unpacks it, pulls the caches, and installs the derivations in the user's environment. For best results, associate the command `xterm -e /nix/bin/nix-install-package' with the MIME type `application/x-nix-package' and visit http://losser.st-lab.cs.uu.nl/~eelco/test/.
This commit is contained in:
		
							parent
							
								
									b857267893
								
							
						
					
					
						commit
						e7ea52d3b3
					
				
					 3 changed files with 117 additions and 67 deletions
				
			
		
							
								
								
									
										37
									
								
								scripts/nix-install-package.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								scripts/nix-install-package.in
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | |||
| #! /usr/bin/perl -w | ||||
| 
 | ||||
| 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 | ||||
| 
 | ||||
| print "unpacking $pkgfile in $tmpdir...\n"; | ||||
| system "bunzip2 < $pkgfile | (cd $tmpdir && tar xf -)"; | ||||
| die if $?; | ||||
| 
 | ||||
| print "this package contains the following derivations:\n"; | ||||
| system "nix-env -qsf $tmpdir/default.nix"; | ||||
| die if $?; | ||||
| 
 | ||||
| print "do you wish to install them (y/n)? "; | ||||
| my $reply = <STDIN>; | ||||
| chomp $reply; | ||||
| exit if (!($reply eq "y")); | ||||
| 
 | ||||
| print "pulling caches...\n"; | ||||
| system "nix-pull `cat $tmpdir/caches`"; | ||||
| die if $?; | ||||
| 
 | ||||
| print "installing package...\n"; | ||||
| system "nix-env -i $tmpdir/default.nix '*'"; | ||||
| die if $?; | ||||
| 
 | ||||
| print "installing succeeded! (enter to continue)\n"; | ||||
| <STDIN>; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue