rendered paste bodysub _setup {
my $stp = shift;
my %slf = (
stamp => '[%h:%m:%s] (%L){'."\t".'%F} - %A{ ( %E )}',
level => 2,
lpath => _skew(@{[ fileparse($main::0) ]}[1])
);
unless (defined $stp) { $stp = {}; } # make sure we got what we need
unless (ref $stp eq 'HASH') { return ( ERR => 1 ); }
foreach my $confval ( ['Level', q/$slf{level} = int($stp->{Level});/],
['To_Keep', q/_keep_logs(int($stp->{To_Keep})) or die;/],
['String', q/$slf{string} = $stp->{String};/],
['Sectional', q/section_title(), $TOKE{F}->{onoff} = 1;/],
['Directory', q/$slf{lpath} = _skew($stp->{Directory});/] ) {
if (defined $stp->{$_->[0]}) {
eval $_->[1];
}
if ($@) {
return ( ERR => 1 );
}
}
unless (-d $slf{lpath}) { mkdir($slf{lpath},0777) or return ( ERR => 1 ); }
if (exists $stp->{Dated_Directories} and $stp->{Dated_Directories}) {
unless (defined $stp->{File_Name}) { $stp->{File_Name} = _detoke('%h;%m;%s')); }
$slf{lpath} = _skew($slf{lpath},_detoke('%Y-%M-%D'));
mkdir($slf{lpath},0777) or return ( ERR => 1 );
}
unless (defined $stp->{File_Name}) {
$stp->{File_Name} = _detoke('%Y-%M-%D %h;%m;%s');
} else {
$stp->{File_Name} = _detoke($stp->{File_Name});
}
$slf{lpath} = _skew($slf{lpath},$stp->{File_Name});
$slf{handle} = new FileHandle;
$slf{handle}->open($slf{lpath},'>');
return ( ERR => 1 ) unless defined $slf{handle};
return %slf;
}