From b6e145ecd29afd5d59e11b58ad5978760cd81a20 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 6 Dec 2012 16:13:32 +0000 Subject: (start_pushing_error,popup_errors,error) factorize "background" error handling --- perl-install/install/pkgs.pm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'perl-install/install/pkgs.pm') 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; -- cgit v1.2.1