From 30fe7e3c2023b3c535c96304ddd4be8ec6411b34 Mon Sep 17 00:00:00 2001 From: Joe Cooper Date: Thu, 27 Jul 2017 18:45:52 -0500 Subject: [PATCH] First stab at adding a plugin counter. --- lib/Virtualmin/Config.pm | 5 +++-- lib/Virtualmin/Config/Plugin.pm | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/Virtualmin/Config.pm b/lib/Virtualmin/Config.pm index 4c15327..2dc5e06 100644 --- a/lib/Virtualmin/Config.pm +++ b/lib/Virtualmin/Config.pm @@ -53,11 +53,12 @@ sub run { my @plugins = $self->_gather_plugins(); @plugins = $self->_order_plugins(@plugins); + my $total = $#plugins; for (@plugins) { my $pkg = "Virtualmin::Config::Plugin::$_"; load $pkg || die "Loading Plugin failed: $_"; - my $plugin = $pkg->new(); - $plugin->actions(); + my $plugin = $pkg->new( total => $total ); + $plugin->actions($total); if ($self->{test} && $plugin->can('tests')) { $plugin->tests(); } diff --git a/lib/Virtualmin/Config/Plugin.pm b/lib/Virtualmin/Config/Plugin.pm index 98ef7a6..37f9f0a 100644 --- a/lib/Virtualmin/Config/Plugin.pm +++ b/lib/Virtualmin/Config/Plugin.pm @@ -16,12 +16,14 @@ our $spinner; our $trust_unknown_referers = 1; our $error_must_die = 1; +our $count = 1; + my $log = Log::Log4perl->get_logger("virtualmin-config-system"); sub new { my ($class, %args) = @_; - my $self = {name => $args{name}, depends => $args{depends}}; + my $self = {name => $args{name}, depends => $args{depends}, total => $args{ total }}; bless $self, $class; return $self; @@ -46,6 +48,9 @@ sub spin { my $self = shift; my $name = $self->name(); my $message = shift // "Configuring " . $name; + $message = "[" . YELLOW . $count . RESET . "/" . GREEN . $self->{total} . + RESET . "] " . $message; + $count++; $log->info($message); $spinner = Term::Spinner::Color->new(); $message = $message . " " x (79 - length($message) - $spinner->{'last_size'});