#!/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}" '' -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}" '' -A fetchurl --argstr url "$val->{url}" --argstr "$val->{type}" "$val->{hash}"`; print $return; } else { $return = `nix-build -o "distfiles/$val->{name}" '' -A fetchurl --argstr url "$val->{url}" --argstr sha256 "$val->{hash}"`; print $return; } } } else { print "Skipping $val->{name}, already in store\n"; } }