diff options
author | Thierry Vignaud <tv@mageia.org> | 2012-12-06 16:13:32 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mageia.org> | 2012-12-06 16:13:32 +0000 |
commit | 018303607f11609fa8c7900a359b0d55c96bb3ab (patch) | |
tree | 405eacc355acca4b411f22c2ff3cc05a646057c3 /perl-install/install/pkgs.pm | |
parent | 02e1899aad9f954102e43e54364769efdbef0a55 (diff) | |
download | drakx-018303607f11609fa8c7900a359b0d55c96bb3ab.tar drakx-018303607f11609fa8c7900a359b0d55c96bb3ab.tar.gz drakx-018303607f11609fa8c7900a359b0d55c96bb3ab.tar.bz2 drakx-018303607f11609fa8c7900a359b0d55c96bb3ab.tar.xz drakx-018303607f11609fa8c7900a359b0d55c96bb3ab.zip |
(start_pushing_error,popup_errors,error) factorize "background" error handling
Diffstat (limited to 'perl-install/install/pkgs.pm')
-rw-r--r-- | perl-install/install/pkgs.pm | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/perl-install/install/pkgs.pm b/perl-install/install/pkgs.pm index cf35328d4..b01ae5165 100644 --- a/perl-install/install/pkgs.pm +++ b/perl-install/install/pkgs.pm @@ -371,6 +371,19 @@ sub unselectAllPackages { _resolve_requested_and_check($packages, $packages->{state}, \%keep_selected); } + +my (@errors, $push_errors); +sub start_pushing_error() { + $push_errors = 1; +} + +sub popup_errors() { + if (@errors) { + $::o->ask_warn(undef, N("An error occurred:") . "\n\n" . join("\n", @errors)); + } + undef $push_errors; +} + sub empty_packages { my ($o_keep_unrequested_dependencies) = @_; my $packages = urpm->new; @@ -389,6 +402,10 @@ sub empty_packages { }; $packages->{error} = sub { log::l("urpmi error: $_[0]"); + if ($push_errors) { + push @errors, @_; + return; + } $::o->ask_warn(undef, N("An error occurred:") . "\n\n" . $_[0]); }; $packages->{root} = $::prefix; |