--- nfo/perl/libs/libp.pm 2002/12/19 01:05:35 1.10 +++ nfo/perl/libs/libp.pm 2003/02/09 04:49:09 1.14 @@ -1,8 +1,21 @@ ################################# # -# $Id: libp.pm,v 1.10 2002/12/19 01:05:35 joko Exp $ +# $Id: libp.pm,v 1.14 2003/02/09 04:49:09 joko Exp $ # # $Log: libp.pm,v $ +# Revision 1.14 2003/02/09 04:49:09 joko +# - purged lots of code and refactored into other modules +# - sorry! +# +# 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 # @@ -46,211 +59,27 @@ require Exporter; our @ISA = qw( Exporter ); our @EXPORT_OK = qw( - Dumper - md5 md5_hex md5_base64 ParseDate UnixDate - strftime - stripHtml stripSpaces stripNewLines toReal trim - croak array_getDifference - getDirList - now - deep_copy - getNewPerlObjectByPkgName - cmd - run_cmds - today + bool2status ); -use Data::Dumper; -use Digest::MD5 qw(md5 md5_hex md5_base64); - $main::TZ = 'GMT'; use Date::Manip; -require LWP::UserAgent; -use HTML::PullParser; - -# $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime; -# see "perldoc -f localtime" -use POSIX qw(strftime); - -use Carp; - -use DirHandle; - ######################################## -sub stripSpaces { - my $text = shift; - #print "text: $text", "\n"; - #print "ord: ", ord(substr($text, 0, 1)), "\n"; - $text =~ s/^\s*//g; - $text =~ s/\s*$//g; - return $text; -} - -sub trim { - my $string = shift; - return stripSpaces($string); -} - -sub stripNewLines { - my $text = shift; - #print "text: $text", "\n"; - #print "ord: ", ord(substr($text, 0, 1)), "\n"; - $text =~ s/\n//g; - #$text =~ s/\s*$//g; - return $text; -} - -sub toReal { - my $string = shift; - $string =~ m/(\d+\.*\d+)/; - my $real = $1; - return $real; -} - -sub stripHtml { - my $html = shift; - my $result = ''; - #$html =~ s/
(.*)/ - ($1)/i; - my $p = HTML::PullParser->new( - doc => \$html, - text => 'text', - unbroken_text => 1, - ); - while (my $token = $p->get_token()) { - my $text = join('', @{$token}); - $result .= $text; - } - #$result =~ s/ //g; - return $result; -} # ============================================= -# "global" vars used in directory-recursive-parsing -my $dirlist_buf; -my @dirlist_path; -my $dirlist_base; - -sub entry_callback { - - my $entry = shift; - - # CHECKS - # dont't use this: - if ($entry eq '.' || $entry eq '..') { return; } - - # PREPARE - # prepare path to current entry - my $cur_entry = join('/', @dirlist_path, $entry); - # prepare path to current entry (absolute) - my $cur_entry_abs = join('/', $dirlist_base, @dirlist_path, $entry); - - # ENTRY - # add current entry to buffer - $dirlist_buf .= $cur_entry . "\n"; - - # (SUB-)DIRECTORY - # check if current entry is a (sub-)directory ... - if (-d $cur_entry_abs) { - push @dirlist_path, $cur_entry; - # ... and parse this (recursion here!!!) - iterate_path($cur_entry_abs); - pop @dirlist_path; - } -} - -sub iterate_path { - - my $path = shift; - - # create new "DirHandle"-object - my $d = new DirHandle $path; - if (defined $d) { - # iterate through all entries in $path ($d->read) and call out entry-handler on each entry - while (defined(my $line = $d->read)) { - entry_callback($line); - } - - undef $d; - } -} - -sub getDirList { - - $dirlist_base = shift; - - # reset vars - $dirlist_buf = ''; - @dirlist_path = (); - - # start parsing file-structure - iterate_path($dirlist_base); - - # return complete list of directory-content including files and subdirs - # entries are newline (\n) - seperated - return $dirlist_buf; - -} -# ============================================= - - -sub now { - 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; - if (not ref $this) { - $this; - } elsif (ref $this eq "ARRAY") { - [map deep_copy($_), @$this]; - } elsif (ref $this eq "HASH") { - +{map { $_ => deep_copy($this->{$_}) } keys %$this}; - } elsif (ref $this eq "CODE") { - $this; - #} else { die "deep_copy asks: what type is $this?" } - } else { print "deep_copy asks: what type is $this?", "\n"; } -} - -sub getNewPerlObjectByPkgName { - 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($args); -} - -sub 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 (@_) { - cmd($_); - } +sub bool2status { + my $bool = shift; + return ($bool ? 'ok' : 'failed'); } 1;