diff options
Diffstat (limited to 'urpm/parallel_ka_run.pm')
-rw-r--r-- | urpm/parallel_ka_run.pm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/urpm/parallel_ka_run.pm b/urpm/parallel_ka_run.pm index 58ec5798..4352cd00 100644 --- a/urpm/parallel_ka_run.pm +++ b/urpm/parallel_ka_run.pm @@ -76,15 +76,16 @@ sub parallel_install { copy_to_dir($parallel, $urpm, values %$install, values %$upgrade, "$urpm->{cachedir}/rpms"); - my %bad_nodes; + my (%bad_nodes, @good_nodes); $parallel->urpm_popen($urpm, 'urpmi', "--pre-clean --test --no-verify-rpm --auto --synthesis $parallel->{synthesis} $parallel->{line}", sub { my ($node, $s) = @_; $s =~ /^\s*$/ and return; $bad_nodes{$node} .= $s; $s =~ /Installation failed/ and $bad_nodes{$node} = ''; - $s =~ /Installation is possible/ and delete $bad_nodes{$node}; + $s =~ /Installation is possible/ and push @good_nodes, $node; undef; }); + delete $bad_nodes{$_} foreach @good_nodes; foreach (keys %{$parallel->{nodes}}) { exists $bad_nodes{$_} or next; |