#!/usr/bin/perl # file-lib.pl , basic file functions #usage array ListFiles($dir,$regexp) returns array of files in $dir whose patterns match $regexp #usage int LogAppend($filename,$message) appends $message to $filename or returns non-zero return 1; exit 0; # ----------------------------------------------------------------------------------------- sub ListFiles { # directory, regexp returns @list #usage array ListFiles($dir,$regexp) returns array of files in $dir whose patterns match $regexp local ($dir,$regexp) = @_; local $this_line,@list,@allfilesx,$listpos,$num_filesx,$file_namex; $this_line =""; $listpos = 0; @list = (""); @allfilesx = (""); $listpos =0; $num_filesx = 0; $file_namex = ""; if ( opendir (LISTFILESSTORAGE_DIR, $dir) ) { # Looks alright @allfilesx = grep !/^\./, readdir LISTFILESSTORAGE_DIR; $num_filesx = @allfilesx; if ( $num_filesx == 0) { # No files yet. Goodbye } #how many files else { foreach $file_namex ( @allfilesx ) { #print "ListFiles considering \"$file_namex\"\n"; if ( $file_namex =~ /$regexp/ ) { #print "Looks fine\n"; $list[$listpos] = $file_namex; $listpos += 1; } } } } return @list; } # ----------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------- sub LogAppend { #usage int LogAppend($filename,$message) appends $message to $filename or returns non-zero local($filename,$message) = @_; local $this_line,$floop; for ( $floop = 0 ; $floop < 3 ; ++$floop ) { sleep ($floop); if ( open(LOGFILE,">>$filename") ) { print LOGFILE $message; $floop = 10; close LOGFILE; return 0; } } if ( $floop < 10 ) { return -1; } return 0; } # -----------------------------------------------------------------------------------------