From 9e8c32cf5bfa51929dc03c75b0af56918a609225 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Quelin?= Date: Fri, 30 Jan 2009 18:15:54 +0100 Subject: [PATCH] new event is_installed() --- lib/App/CPAN2Pkg/Module.pm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/App/CPAN2Pkg/Module.pm b/lib/App/CPAN2Pkg/Module.pm index 687e3e3..c60a5c0 100644 --- a/lib/App/CPAN2Pkg/Module.pm +++ b/lib/App/CPAN2Pkg/Module.pm @@ -69,6 +69,7 @@ sub spawn { # public events find_prereqs => \&find_prereqs, is_in_dist => \&is_in_dist, + is_installed => \&is_installed, # private events _find_prereqs => \&_find_prereqs, _is_in_dist => \&_is_in_dist, @@ -139,6 +140,27 @@ sub is_in_dist { $self->_wheel($wheel); } + +sub is_installed { + my ($k, $self) = @_[KERNEL, HEAP]; + + my $name = $self->name; + my $cmd = qq{ require $name }; + $self->_log_new_step( + 'Checking if module is installed', + "Evaluating command: $cmd" + ); + + eval $cmd; + my $what = $@ || "$name loaded successfully\n"; + $k->post('ui', 'append', $self, $what); + + my $event = $@ ? 'module_not_installed' : 'module_installed'; + my $status = $@ ? 'not installed' : 'installed'; + $self->_log_result("$name is $status locally."); + $k->post('app', $event, $self); +} + # -- private events sub _find_prereqs { -- 2.11.4.GIT