--- nfo/perl/libs/libsetup.pm 2002/07/27 00:28:36 1.1 +++ nfo/perl/libs/libsetup.pm 2002/12/15 02:03:58 1.4 @@ -1,8 +1,19 @@ ################################# # -# $Id: libsetup.pm,v 1.1 2002/07/27 00:28:36 cvsjoko Exp $ +# $Id: libsetup.pm,v 1.4 2002/12/15 02:03:58 joko Exp $ # # $Log: libsetup.pm,v $ +# Revision 1.4 2002/12/15 02:03:58 joko +# + using Tie::IxHash to keep the order of modules (passed in via an array) +# +# Revision 1.3 2002/12/01 22:12:25 joko +# + changed status-flags: 0 => 'notok' 1 => 'ok' +# +# Revision 1.2 2002/10/25 11:38:50 joko +# + sub checkCommonDeps +# + sub checkDeps_orig +# + refactored sub checkDeps +# # Revision 1.1 2002/07/27 00:28:36 cvsjoko # + new # @@ -10,59 +21,55 @@ # ################################# -package libsetup; -require Exporter; -@ISA = qw( Exporter ); -@EXPORT = qw( - Dumper - md5 md5_hex md5_base64 - ParseDate UnixDate - strftime - stripHtml stripSpaces stripNewLines toReal trim - croak - array_getDifference -); +package libsetup; use strict; use warnings; +use Tie::IxHash; - my @modules = qw( - Data::Dumper Digest::MD5 POSIX Carp - LWP::UserAgent HTML::PullParser - Date::Manip - DBI DBD::mysql - Set::Object Tangram Class::Tangram - WDDX - ); +my @modules = qw( + Data::Dumper Digest::MD5 POSIX Carp + LWP::UserAgent HTML::PullParser + Date::Manip + DBI DBD::mysql + Set::Object Tangram Class::Tangram + WDDX +); - sub setupCpanModule { - my $module = shift; - use CPAN; - print "try to setup module \"$module\"? (remember to be root) (y|n) "; - my $result = ; +sub setupCpanModule { + my $module = shift; + use CPAN; + print "try to setup module \"$module\"? (remember to be root) (y|n) "; + my $result = ; + print "\n"; + chomp($result); + if (lc($result) eq 'y') { + print "installing \"$module from CPAN\" ..."; + if (CPAN::install($module)) { +print "ok"; +return 1; + } else { +print "failed"; +exit; + } print "\n"; - chomp($result); - if (lc($result) eq 'y') { - print "installing \"$module from CPAN\" ..."; - if (CPAN::install($module)) { - print "ok"; - return 1; - } else { - print "failed"; - exit; - } - print "\n"; - #my $obj = CPAN::Shell->expand('Module',$module); - #$obj->install; - } + #my $obj = CPAN::Shell->expand('Module',$module); + #$obj->install; } +} -sub checkDeps { +sub checkCommonDeps { + checkDeps_orig(\@modules); +} + +sub checkDeps_orig { + my $modules = shift; + my @modules = @{$modules}; map { #print $_, "\n"; print "testing for \"$_\" ..."; @@ -83,5 +90,21 @@ } @modules; } +sub checkDeps { + my $modules = shift; + my @modules = @{$modules}; + my $result; + tie %$result, 'Tie::IxHash'; + map { + my $evalcmd = "use $_;"; + eval($evalcmd); + if ($@) { + $result->{$_} = 'notok'; + } else { + $result->{$_} = 'ok'; + } + } @modules; + return $result; +} 1;