--- nfo/perl/libs/libp.pm 2002/11/29 04:44:53 1.7 +++ nfo/perl/libs/libp.pm 2002/12/23 04:25:13 1.13 @@ -1,8 +1,27 @@ ################################# # -# $Id: libp.pm,v 1.7 2002/11/29 04:44:53 joko Exp $ +# $Id: libp.pm,v 1.13 2002/12/23 04:25:13 joko Exp $ # # $Log: libp.pm,v $ +# Revision 1.13 2002/12/23 04:25:13 joko +# + sub bool2status +# +# Revision 1.12 2002/12/22 14:15:02 joko +# + sub mkObject +# +# Revision 1.11 2002/12/19 16:27:17 joko +# +- renamed 'cmd' to 'run_cmd' +# +# Revision 1.10 2002/12/19 01:05:35 joko +# + sub today +# +# Revision 1.9 2002/12/05 13:54:00 joko +# + fix: let 'deep_copy' print its message out (instead of die) +# +# Revision 1.8 2002/12/01 22:11:35 joko +# + sub cmd +# + sub run_cmds +# # Revision 1.7 2002/11/29 04:44:53 joko # - sub array_getRelations # + sub getNewPerlObjectByPkgName @@ -40,13 +59,17 @@ md5 md5_hex md5_base64 ParseDate UnixDate strftime - stripHtml stripSpaces stripNewLines toReal trim croak + + stripHtml stripSpaces stripNewLines toReal trim array_getDifference getDirList - now + now today deep_copy getNewPerlObjectByPkgName + run_cmd run_cmds + mkObject + bool2status ); use Data::Dumper; @@ -193,6 +216,10 @@ return strftime("%Y-%m-%d %H:%M:%S", localtime); } +sub today { + return strftime("%Y-%m-%d", localtime); +} + # ACK's go to ... sub deep_copy { my $this = shift; @@ -204,7 +231,8 @@ +{map { $_ => deep_copy($this->{$_}) } keys %$this}; } elsif (ref $this eq "CODE") { $this; - } else { die "what type is $_?" } + #} else { die "deep_copy asks: what type is $this?" } + } else { print "deep_copy asks: what type is $this?", "\n"; } } sub getNewPerlObjectByPkgName { @@ -218,4 +246,37 @@ return $pkgname->new($args); } +sub mkObject { + my $pkgname = shift; + #my $args = shift; + #$logger->debug( __PACKAGE__ . "->getNewPerlObjectByPkgName( pkgname $pkgname args $args )" ); + my $evstring = "use $pkgname;"; + eval($evstring); + #$@ && $logger->error( __PACKAGE__ . ':' . __LINE__ . " Error in eval $evstring: " . $@ ); + $@ && print( __PACKAGE__ . ':' . __LINE__ . " Error in eval \"$evstring\": " . $@ ); + return $pkgname->new(@_); +} + +sub run_cmd { + my $cmd = shift; + $cmd = 'perl ' . $cmd; + my $sep = "-" x 90; + print $sep, "\n"; + print " ", $cmd, "\n"; + print $sep, "\n"; + system($cmd); + print "\n"; +} + +sub run_cmds { + foreach (@_) { + run_cmd($_); + } +} + +sub bool2status { + my $bool = shift; + return ($bool ? 'ok' : 'failed'); +} + 1;