Files
racalmas/lib/calcms/log.pm

74 lines
1.6 KiB
Perl

package log;
use strict;
use warnings;
no warnings 'redefine';
our @EXPORT_OK = qw(error load_file save_file append_file);
use config();
#TODO: check if config is given
sub error($$) {
my $config = $_[0];
my $message = "Error: $_[1]\n";
print STDERR $message;
unless ( defined $config ) {
print STDERR "missing config at log::error\n";
die();
}
die();
}
sub load_file($) {
my ($filename) = @_;
my $content = '';
if ( -e $filename ) {
my $FILE = undef;
open( $FILE, "<:utf8", $filename ) || warn "cant read file '$filename'";
$content = join "", (<$FILE>);
close $FILE;
return $content;
}
}
sub save_file($$) {
my ($filename, $content) = @_;
#check if directory is writeable
if ( $filename =~ /^(.+?)\/[^\/]+$/ ) {
my $dir = $1;
unless ( -w $dir ) {
print STDERR "log::save_file : cannot write to directory ($dir)\n";
return;
}
}
open my $FILE, ">:utf8", $filename || warn("cant write file '$filename'");
if ( defined $FILE ) {
print $FILE $content . "\n";
close $FILE;
}
}
sub append_file($$) {
my ($filename, $content) = @_;
unless ( ( defined $filename ) && ( $filename ne '' ) && ( -e $filename ) ) {
print STDERR "cannot append, file '$filename' does not exist\n";
return;
}
return unless defined $content;
open my $FILE, ">>:utf8", $filename or warn("cant write file '$filename'");
print $FILE $content . "\n";
close $FILE;
}
#do not delete last line!
1;