35 lines
1.3 KiB
Perl
Executable File
35 lines
1.3 KiB
Perl
Executable File
#!/usr/bin/env nix-shell
|
|
#! nix-shell -i perl -p perlPackages.JSON perl
|
|
use strict;
|
|
use warnings;
|
|
|
|
use JSON;
|
|
use Data::Dumper;
|
|
|
|
my $json = do { local $/; <> };
|
|
my @text = decode_json($json);
|
|
my @data = @{$text[0]};
|
|
my $return;
|
|
|
|
foreach my $val (@data) {
|
|
if ( ! -f "distfiles/$val->{name}" ) {
|
|
#print "Fetching $val->{name} from $val->{url} with patch=$val->{isPatch} $val->{type} $val->{hash}\n";
|
|
#print Dumper $val;
|
|
if (defined $val->{isPatch} && $val->{isPatch} eq 1) {
|
|
$return = `nix-build -o "distfiles/$val->{name}" '<nixpkgs>' -A fetchpatch --argstr url "$val->{url}" --argstr name "$val->{name}" --argstr sha256 "$val->{hash}"`;
|
|
print $return;
|
|
} else {
|
|
# we known the checksum we expect
|
|
if (defined $val->{type}) {
|
|
$return = `nix-build -o "distfiles/$val->{name}" '<nixpkgs>' -A fetchurl --argstr url "$val->{url}" --argstr "$val->{type}" "$val->{hash}"`;
|
|
print $return;
|
|
} else {
|
|
$return = `nix-build -o "distfiles/$val->{name}" '<nixpkgs>' -A fetchurl --argstr url "$val->{url}" --argstr sha256 "$val->{hash}"`;
|
|
print $return;
|
|
}
|
|
}
|
|
} else {
|
|
print "Skipping $val->{name}, already in store\n";
|
|
}
|
|
}
|