All pastes #927189 Raw Edit

setyupp

public text v1 · immutable
·published 2008-03-04 02:04 UTC
rendered paste body
sub _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;
}