diff options
-rw-r--r-- | scripts/nix-pull.in | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/scripts/nix-pull.in b/scripts/nix-pull.in index f1fb57e9b..86004102d 100644 --- a/scripts/nix-pull.in +++ b/scripts/nix-pull.in @@ -139,11 +139,23 @@ $? == 0 or die "nix-instantiate failed"; # Register all substitutes. print STDERR "registering substitutes...\n"; -system "nix-store --substitute @subs"; -if ($?) { die "`nix-store --substitute' failed"; } +while (scalar @subs > 0) { + my $n = scalar @subs; + if ($n > 256) { $n = 256 }; + my @subs2 = @subs[0..$n - 1]; + @subs = @subs[$n..scalar @subs - 1]; + system "nix-store --substitute @subs2"; + if ($?) { die "`nix-store --substitute' failed"; } +} # Register all successors. print STDERR "registering successors...\n"; -system "nix-store --successor @sucs"; -if ($?) { die "`nix-store --successor' failed"; } +while (scalar @sucs > 0) { + my $n = scalar @sucs; + if ($n > 256) { $n = 256 }; + my @sucs2 = @sucs[0..$n - 1]; + @sucs = @sucs[$n..scalar @sucs - 1]; + system "nix-store --successor @sucs"; + if ($?) { die "`nix-store --successor' failed"; } +} |