Files
racalmas/lib/calcms/log.pm
Milan a769424a6e remove use base Exporter;
no need to call import
2020-11-14 21:06:23 +01:00

91 lines
2.0 KiB
Perl

package log;
use strict;
use warnings;
no warnings 'redefine';
#use base 'Exporter';
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();
}
#do not call template::check to avoid deep recursion!
if ( $config->{system}->{debug} ) {
template::process(
$config, 'print',
'templates/default.html',
{
static_files_url => $config->{locations}->{static_files_url},
error => $message
}
);
}
die();
}
sub load_file($) {
my $filename = shift;
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 = shift;
my $content = shift;
#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 = shift;
my $content = shift;
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;