Apache-Logmonster
view release on metacpan or search on metacpan
lib/Apache/Logmonster/Utility.pm view on Meta::CPAN
That will append a line like this to the log file:
2004-11-12 23:20:06 proggy Starting up
2004-11-12 23:20:06 proggy Shutting down
arguments required:
file - the log file to append to
prog - the name of the application
lines - arrayref - elements are events to log.
arguments optional:
fatal
debug
result:
1 - success
0 - failure
=item mailtoaster
$util->mailtoaster();
Downloads and installs Mail::Toaster.
=item mkdir_system
$util->mkdir_system( dir => $dir, debug=>$debug );
creates a directory using the system mkdir binary. Can also make levels of directories (-p) and utilize sudo if necessary to escalate.
=item check_pidfile
check_pidfile is a process management method. It will check to make sure an existing pidfile does not exist and if not, it will create the pidfile.
$pidfile = $util->check_pidfile( "/var/run/program.pid" );
The above example is all you need to do to add process checking (avoiding multiple daemons running at the same time) to a program or script. This is used in toaster-watcher.pl. toaster-watcher normally completes a run in a few seconds and is run ever...
However, toaster-watcher can be configured to do things like expire old messages from maildirs and feed spam through a processor like sa-learn. This can take a long time on a large mail system so we don't want multiple instances of toaster-watcher ru...
result:
the path to the pidfile (on success).
Example:
my $pidfile = $util->check_pidfile( "/var/run/changeme.pid" );
unless ($pidfile) {
warn "WARNING: couldn't create a process id file!: $!\n";
exit 0;
};
do_a_bunch_of_cool_stuff;
unlink $pidfile;
=item regexp_test
Prints out a string with the regexp match bracketed. Credit to Damien Conway from Perl Best Practices.
Example:
$util->regexp_test(
exp => 'toast',
string => 'mailtoaster rocks',
);
arguments required:
exp - the regular expression
string - the string you are applying the regexp to
result:
printed string highlighting the regexp match
=item source_warning
Checks to see if the old build sources are present. If they are, offer to remove them.
Usage:
$util->source_warning(
package => "Mail-Toaster-5.26",
clean => 1,
src => "/usr/local/src"
);
arguments required:
package - the name of the packages directory
arguments optional:
src - the source directory to build in (/usr/local/src)
clean - do we try removing the existing sources? (enabled)
timeout - how long to wait for an answer (60 seconds)
result:
1 - removed
0 - failure, package exists and needs to be removed.
=item sources_get
Tries to download a set of sources files from the site and url provided. It will try first fetching a gzipped tarball and if that files, a bzipped tarball. As new formats are introduced, I will expand the support for them here.
usage:
$self->sources_get(
package => 'simscan-1.07',
site => 'http://www.inter7.com',
path => '/simscan/',
)
arguments required:
package - the software package name
site - the host to fetch it from
url - the path to the package on $site
arguments optional:
conf - hashref - values from toaster-watcher.conf
debug
( run in 1.439 second using v1.01-cache-2.11-cpan-39bf76dae61 )