diff options
Diffstat (limited to 'src/nix-instantiate')
-rwxr-xr-x | src/nix-instantiate | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/src/nix-instantiate b/src/nix-instantiate deleted file mode 100755 index 63c858864ddf..000000000000 --- a/src/nix-instantiate +++ /dev/null @@ -1,85 +0,0 @@ -#! /usr/bin/perl -w - -use strict; -use FileHandle; -use File::Spec; - -my $outdir = File::Spec->rel2abs($ARGV[0]); -my $netdir = File::Spec->rel2abs($ARGV[1]); - -my %donetmpls = (); - -sub fetchFile { - my $loc = shift; - - if ($loc =~ /^([+\w\d\.\/-]+)$/) { - return $1; - } elsif ($loc =~ /^url\((.*)\)$/) { - my $url = $1; - $url =~ /\/([^\/]+)$/ || die "invalid url $url"; - my $fn = "$netdir/$1"; - if (! -f $fn) { - print "fetching $url...\n"; - system "cd $netdir; wget --quiet -N $url"; - if ($? != 0) { - unlink($fn); - die; - } - } - return $fn; - } else { - die "invalid file specified $loc"; - } -} - -sub convert { - my $descr = shift; - - if (defined $donetmpls{$descr}) { - return $donetmpls{$descr}; - } - - my ($x, $dir, $fn) = File::Spec->splitpath($descr); - - print "$descr\n"; - - my $IN = new FileHandle; - my $OUT = new FileHandle; - my $outfile = "$outdir/$fn"; - open $IN, "< $descr" or die "cannot open $descr"; - open $OUT, "> $outfile" or die "cannot create $outfile"; - - while (<$IN>) { - chomp; - - if (/^(\w+)\s*=\s*([^\#\s]*)\s*(\#.*)?$/) { - my ($name, $loc) = ($1, $2); - my $file = fetchFile($loc); - $file = File::Spec->rel2abs($file, $dir); - my $out = `md5sum $file`; - die unless ($? == 0); - $out =~ /^([0-9a-f]+)\s/; - my $hash = $1; - print $OUT "$name = $hash\n"; - } elsif (/^(\w+)\s*<-\s*([+\w\d\.\/-]+)\s*(\#.*)?$/) { - my $name = $1; - my $file = $2; - $file = File::Spec->rel2abs($file, $dir); - $file = convert($file); - my $out = `md5sum $file`; - die unless ($? == 0); - $out =~ /^([0-9a-f]+)\s/; - my $hash = $1; - print $OUT "$name <- $hash\n"; - } else { - print $OUT "$_\n"; - } - } - - $donetmpls{$descr} = $outfile; - return $outfile; -} - -for (my $i = 2; $i < scalar @ARGV; $i++) { - convert(File::Spec->rel2abs($ARGV[$i])); -} |