diff options
Diffstat (limited to 'urpm/install.pm')
-rw-r--r-- | urpm/install.pm | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/urpm/install.pm b/urpm/install.pm index 9a3ec057..25b96114 100644 --- a/urpm/install.pm +++ b/urpm/install.pm @@ -91,29 +91,33 @@ Standard logger for transactions =cut # install logger callback -my ($erase_logger, $index); +my ($erase_logger, $index, $total_pkg, $uninst_count); sub install_logger { my ($urpm, $type, undef, $subtype, $amount, $total) = @_; - my $total_pkg = $urpm->{nb_install}; local $| = 1; if ($subtype eq 'start') { $urpm->{logger_progress} = 0; if ($type eq 'trans') { + $total_pkg = $urpm->{nb_install}; $urpm->{logger_count} ||= 0; + $uninst_count = 0; my $p = N("Preparing..."); print $p, " " x (33 - length $p); } else { my $pname; + my $cnt; if ($type eq 'uninst') { + $total_pkg = $urpm->{trans}->NElements - $index if !$uninst_count; + $cnt = ++$uninst_count; $pname = N("removing %s", $urpm->{trans}->Element_fullname($index)); $erase_logger->($urpm, undef, undef, $subtype); } else { # index already got bumped in {callback_open}: $pname = $urpm->{trans}->Element_name($index-1); + ++$urpm->{logger_count} if $pname; + $cnt = $pname ? $urpm->{logger_count} : '-'; } - ++$urpm->{logger_count} if $pname; - my $cnt = $pname ? $urpm->{logger_count} : '-'; my $s = sprintf("%9s: %-22s", $cnt . "/" . $total_pkg, $pname); print $s; $s =~ / $/ or printf "\n%9s %-22s", '', ''; |