]> Frank Brehm's Git Trees - scripts/solaris.git/commitdiff
LogRotate::Common ueberall verwendet
authorFrank Brehm <frank@brehm-online.com>
Wed, 22 Mar 2006 14:12:47 +0000 (14:12 +0000)
committerFrank Brehm <frank@brehm-online.com>
Wed, 22 Mar 2006 14:12:47 +0000 (14:12 +0000)
LogRotate.pm
LogRotate/Common.pm
LogRotate/Conf.pm
LogRotate/StateFile.pm
logrotate.pl

index e5dcaf3b83cc713cafc2f3fa7b8b978f1847e208..79f131f63d494a54fa15c2d7cf80374c01a5247f 100644 (file)
@@ -24,13 +24,13 @@ use Data::Dumper;
 use POSIX;
 use File::Copy;
 
-my $MainVersion = "2.0";
+use LogRotate::Common;
 
 my $Revis = <<'ENDE';
   $Revision$
 ENDE
 $Revis =~ s/^.*:\s*(\S+)\s*\$.*/$1/s;
-our $VERSION = $MainVersion . "." . $Revis;
+our $VERSION = $LogRotate::Common::LOGROTATE_VERSION . "." . $Revis;
 
 $Data::Dumper::Indent = 1;
 $Data::Dumper::Sortkeys = 1;
@@ -51,7 +51,6 @@ sub new {
   my ( $res, $cmd );
 
   my $self = {
-    verbose         => 0,
     test            => 0,
     force           => 0,
     statusfile      => '/var/lib/logrotate.status',
@@ -64,11 +63,9 @@ sub new {
 
   $res = bless $self, $class;
 
-  my $p = $self->{'verbose'} > 2 ? __PACKAGE__ . "::new: " : "";
+  my $p = verbose() > 2 ? __PACKAGE__ . "::new: " : "";
 
-  my $conf = new LogRotate::Conf( 
-       'verbose'       => $self->{'verbose'},
-  );
+  my $conf = new LogRotate::Conf();
   
   $self->{'c'} = $conf;
 
@@ -90,7 +87,7 @@ sub read_config($$) {
 
   my $self = shift;
   my $file = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::read: " : "";
+  my $p = verbose() ? __PACKAGE__ . "::read: " : "";
 
   return $self->{'c'}->read($file);
 
@@ -107,10 +104,9 @@ sub read_config($$) {
 sub check_state($) {
 
   my $self = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::check_state: " : "";
+  my $p = verbose() ? __PACKAGE__ . "::check_state: " : "";
 
   my $state_file = new LogRotate::StateFile( 
-       'verbose'       => $self->{'verbose'},
        'test'          => $self->{'test'},
   );
   $state_file->file($self->{'statusfile'});
@@ -130,25 +126,6 @@ sub check_state($) {
 
 #------------------------------------------------------------------------------------------
 
-=head2 verbose()
-
-Setzt bzw. gibt den Verbose-Level dieses Moduls zurueck.
-
-=cut
-
-sub verbose($;$) {
-
-  my $self = shift;
-  my $nv;
-  if ( @_ ) {
-    $nv = shift;
-    $nv = defined $nv ? ( $nv =~ /(\d+)/ ? $1 : 0 ) : 0;
-    $self->{'verbose'} = $nv;
-  }
-  return $self->{'verbose'};
-
-}
-
 1;
 
 __END__
index 1e760f0f31abad7562e1b500329585ac6094dde6..89d7d7c14bec4427f9e4247e4c584b0dd81452b4 100644 (file)
@@ -5,11 +5,11 @@ package LogRotate::Common;
 
 =head1 NAME
 
-BsAgent::Common
+LogRotate::Common
 
 =head1 DESCRIPTION
 
-Modul für allgemeine Aufgaben, zum Beispiel Verbose-Level usw.
+Modul fuer allgemeine Aufgaben, zum Beispiel Verbose-Level usw.
 
 Dieses Modul sollte von allen Scripten und Modulen verwendet werden.
 
@@ -26,8 +26,8 @@ our @ISA = qw(Exporter);
 our @EXPORT = qw(
   &human2byte
   &parts
+  &period2days
   &verbose
-  &message_string
   &to_bool
   &to_float
   &to_int
@@ -35,6 +35,7 @@ our @EXPORT = qw(
 
 sub human2byte($);
 sub parts($);
+sub period2days($);
 sub verbose(;$);
 sub to_bool($);
 sub to_float($);
@@ -139,6 +140,93 @@ sub parts($) {
 
 }
 
+#------------------------------------------------------------------------------------
+
+=head2 period2days( $period_string )
+
+Wandelt eine Perioden-Angabe der Form "5d 8h" in eine Anzahl von Tagen um.
+
+=cut
+
+sub period2days($) {
+
+  my $period = shift;
+  my $p = verbose() ? __PACKAGE__ . "::period2days(): " : "";
+
+  $period = "" unless defined $period;
+  my $orig = $period;
+  print $p . "Aufgerufen mit '" . $period . "'.\n" if verbose() > 5;
+  $period =~ s/^\s+//;
+  $period =~ s/\s+$//;
+
+  if ( $period eq "" ) {
+    warn $p . "Ungueltige Periodenangabe.\n";
+    return undef;
+  }
+
+  if ( $period =~ /^now$/i ) {
+    # Rotation immer sofort
+    return 0;
+  }
+
+  if ( $period =~ /^never$/i ) {
+    # Rotation in 400 Jahren (also hoffentlich nie)
+    return 36525 * 4;
+  }
+
+  my $days = undef;
+  my $t = 0;
+
+  if ( $period =~ /(\d+)\s*h(?:ours?)?/i ) {
+    $t = $1;
+    print $p . "$t Stunden.\n" if verbose() > 5;
+    $t /= 24;
+    $days += $t;
+    $period =~ s/\d+\s*h(?:ours?)?//i;
+  }
+  print $p . "Noch uebrig nach Stunden: '$period'.\n" if verbose() > 5;
+
+  if ( $period =~ /(\d+(?:\.\d*)?)\s*w(?:eeks?)?/i ) {
+    $t = $1;
+    print $p . "$t Wochen.\n" if verbose() > 5;
+    $t *= 7;
+    $days += $t;
+    $period =~ s/\d+(?:\.\d*)?\s*w(?:eeks?)?//i;
+  }
+  print $p . "Noch uebrig nach Wochen: '$period'.\n" if verbose() > 5;
+
+  if ( $period =~ /(\d+(?:\.\d*)?)\s*m(?:onths?)?/i ) {
+    $t = $1;
+    print $p . "$t Monate.\n" if verbose() > 5;
+    $t *= 30.4;
+    $days += $t;
+    $period =~ s/\d+(?:\.\d*)?\s*m(?:onths?)?//i;
+  }
+  print $p . "Noch uebrig nach Monaten: '$period'.\n" if verbose() > 5;
+
+  if ( $period =~ /(\d+(?:\.\d*)?)\s*y(?:ears?)?/i ) {
+    $t = $1;
+    print $p . "$t Jahre.\n" if verbose() > 5;
+    $t *= 365;
+    $days += $t;
+    $period =~ s/\d+(?:\.\d*)?\s*y(?:ears?)?//i;
+  }
+  print $p . "Noch uebrig nach Jahren: '$period'.\n" if verbose() > 5;
+
+  if ( $period =~ /(\d+(?:\.\d*)?)\s*(?:d(?:ays?)?\s*)?$/i ) {
+    $t = $1;
+    print $p . "$t Tage.\n" if verbose() > 5;
+    $days += $t;
+    $period =~ s/\d+(?:\.\d*)?\s*(?:d(?:ays?)?\s*)?$//i;
+  }
+  print $p . "Noch uebrig nach Tagen: '$period'.\n" if verbose() > 5;
+
+  warn $p . "Ungueltige Angabe einer Periode: '" . $orig . "'.\n" unless $period =~ /^\s*$/;
+
+  return $days;
+
+}
+
 #------------------------------------------------------------------------------------------
 
 =head2 to_bool( $wert )
@@ -187,7 +275,7 @@ sub to_bool($) {
 
 Wandelt den uebergebenen Scalar sicher in eine Float-Zahl um.
 
-Falls der uebergebene Wert keine gueltige Zahl ist, wird undef zurückgegeben.
+Falls der uebergebene Wert keine gueltige Zahl ist, wird undef zurueckgegeben.
 
 =cut
 
@@ -220,12 +308,12 @@ sub to_float($) {
 
 =head2 to_int( $wert, $signed )
 
-Wandelt den übergebenen Wert sicher in eine Integer-Zahl um.
+Wandelt den uebergebenen Wert sicher in eine Integer-Zahl um.
 
 Dabei legt der optionale logische Parameter $signed fest, ob auch
-vorzeichenbehaftete Werte zulässig sind.
+vorzeichenbehaftete Werte zulaessig sind.
 
-Wenn keine gültige Zahl übergeben wird, wird undef zurückgegeben.
+Wenn keine gueltige Zahl uebergeben wird, wird undef zurueckgegeben.
 
 =cut
 
index b3d04593adc7edd4afc4add7a406adc485be6309..42eba6b1b6e775b8ebff7242e2720cd4458aaa8d 100644 (file)
@@ -11,7 +11,6 @@ B<LogRotate/Conf.pm> - Logrotate Object Module
 
   my $lr_conf = new LogRotate::Conf();
 
-  $lr_conf->verbose(2);
   $lr_conf->default_compress(1);
   $lr_conf->default_copytruncate(0);
   $lr_conf->default_create_mode(0644);
@@ -34,17 +33,16 @@ use File::Basename;
 use Data::Dumper;
 #use POSIX;
 
+use LogRotate::Common;
 
 our $AUTOLOAD;
 our %ok_field;
 
-my $MainVersion = "2.0";
-
 my $Revis = <<'ENDE';
   $Revision$
 ENDE
 $Revis =~ s/^.*:\s*(\S+)\s*\$.*/$1/s;
-our $VERSION = $MainVersion . "." . $Revis;
+our $VERSION = $LogRotate::Common::LOGROTATE_VERSION . "." . $Revis;
 
 $Data::Dumper::Indent = 1;
 $Data::Dumper::Sortkeys = 1;
@@ -111,7 +109,6 @@ sub new {
 
   my $self = {
     'configfiles'      => {},
-    'verbose'          => 0,
     'included_files'   => {},
     'compress_cmd'     => 'Compress::Zlib',
     'pidfile'          => '/var/run/logrotate.pid',
@@ -124,7 +121,7 @@ sub new {
 
   $res = bless $self, $class;
 
-  my $p = $self->verbose() ? __PACKAGE__ . "::new(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::new(): " : "";
   $self->reset_defaults();
   $self->add_taboo( '\.rpmnew',  'ext' );
   $self->add_taboo( '\.rpmorig', 'ext' );
@@ -140,7 +137,7 @@ sub new {
 
   if ( $self->{'compress_cmd'} ) {
     unless ( $cmd = $self->check_compress_program( $self->{'compress_cmd'}, 1 ) ) {
-      carp $p . "Kein gueltiges Kompressionsprogramm gefunden, Kompression wird deaktiviert.\n" if $self->{'verbose'};
+      carp $p . "Kein gueltiges Kompressionsprogramm gefunden, Kompression wird deaktiviert.\n" if verbose();
       $self->{'compress_cmd'} = undef;
     }
     $self->{'compress_cmd'} = $cmd;
@@ -154,7 +151,7 @@ sub new {
 
 =head2 AUTOLOAD()
 
-Autoload-Methode zum Zugriff auf alle möglichen Elemente.
+Autoload-Methode zum Zugriff auf alle moeglichen Elemente.
 
 =cut
 
@@ -169,7 +166,6 @@ sub AUTOLOAD {
 
   croak "Ungueltige Attributmethode ->$attr()" unless $ok_field{$attr};
 
-  return $self->verbose(@_)                   if $attr eq "verbose";
   return $self->compress_cmd(@_)              if $attr eq "compress_cmd";
   return $self->default_compress(@_)          if $attr eq "default_compress";
   return $self->default_copytruncate(@_)      if $attr eq "default_copytruncate";
@@ -217,7 +213,7 @@ sub add_taboo($$;$) {
 
   my $self = shift;
   my $pattern  = shift || '';
-  my $p = $self->verbose() ? __PACKAGE__ . "::add_taboo(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::add_taboo(): " : "";
   my $type = lc(shift || 'file');
 
   $self->{'taboo'} = [] unless $self->{'taboo'};
@@ -232,7 +228,7 @@ sub add_taboo($$;$) {
   }
 
   $pattern = sprintf( $Pat{$type}, $pattern );
-  print $p . "Neues Tabu-Pattern: '$pattern'.\n" if $self->verbose() > 3;
+  print $p . "Neues Tabu-Pattern: '$pattern'.\n" if verbose() > 3;
   push( @{$self->{'taboo'}}, $pattern );
 
 }
@@ -257,7 +253,7 @@ sub check_compress_program($$;$) {
 
   my $self = shift;
   my $cmd  = shift || 0;
-  my $p = $self->verbose() ? __PACKAGE__ . "::check_compress_program(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::check_compress_program(): " : "";
   my $check_if_empty = shift || 0;
   my @Dirs;
   my ( $dir, $found, $prog );
@@ -267,7 +263,7 @@ sub check_compress_program($$;$) {
   if ( $cmd ) {
     if ( $cmd =~ m#^/# ) {
       if ( -f $cmd and -x $cmd ) {
-        print $p . "Kopressionsprogramm in '$cmd' gefunden.\n" if $self->verbose() > 1;
+        print $p . "Kopressionsprogramm in '$cmd' gefunden.\n" if verbose() > 1;
         return $cmd;
       } else {
         warn $p . "Ungueltiges Kopressionsprogramm '$cmd'.\n";
@@ -277,26 +273,26 @@ sub check_compress_program($$;$) {
       if ( $cmd eq "1" or $cmd =~ /^Compress::Zlib$/ ) {
         eval "use Compress::Zlib;";
         if ( $@ ) {
-          warn "$@\n" if $self->{'verbose'};
+          warn "$@\n" if verbose();
           $cmd = undef;
         } else {
-          print $p . "Verwende Perl-Modul 'Compress::Zlib' fuer Kompression.\n" if $self->verbose() > 1;
+          print $p . "Verwende Perl-Modul 'Compress::Zlib' fuer Kompression.\n" if verbose() > 1;
           return 'Compress::Zlib';
         }
       } elsif ( $cmd eq "2" or $cmd =~ /^Compress::Bzip2$/ ) {
         eval "use Compress::Bzip2;";
         if ( $@ ) {
-          warn "$@\n" if $self->verbose();
+          warn "$@\n" if verbose();
           $cmd = undef;
         } else {
-          print $p . "Verwende Perl-Modul 'Compress::Bzip2' fuer Kompression.\n" if $self->verbose() > 1;
+          print $p . "Verwende Perl-Modul 'Compress::Bzip2' fuer Kompression.\n" if verbose() > 1;
           return 'Compress::Bzip2';
         }
       } else {
         foreach $dir ( @Dirs ) {
           $prog = $dir . "/" . $cmd;
           if ( -f $prog and -x $prog ) {
-            print $p . "Kompressionsprogramm in '$prog' gefunden.\n" if $self->verbose() > 1;
+            print $p . "Kompressionsprogramm in '$prog' gefunden.\n" if verbose() > 1;
             return $prog;
           }
         }
@@ -312,7 +308,7 @@ sub check_compress_program($$;$) {
     if ( $@ ) {
       $cmd = undef;
     } else {
-      print $p . "Verwende Perl-Modul 'Compress::Zlib' fuer Kompression.\n" if $self->verbose() > 1;
+      print $p . "Verwende Perl-Modul 'Compress::Zlib' fuer Kompression.\n" if verbose() > 1;
       $self->{'compressext'} = ".gz";
       return 'Compress::Zlib';
     }
@@ -321,7 +317,7 @@ sub check_compress_program($$;$) {
     if ( $@ ) {
       $cmd = undef;
     } else {
-      print $p . "Verwende Perl-Modul 'Compress::Bzip2' fuer Kompression.\n" if $self->verbose() > 1;
+      print $p . "Verwende Perl-Modul 'Compress::Bzip2' fuer Kompression.\n" if verbose() > 1;
       $self->{'compressext'} = ".bz2";
       return 'Compress::Bzip2';
     }
@@ -331,7 +327,7 @@ sub check_compress_program($$;$) {
         $prog = $dir . "/" . $cmd;
         if ( -f $prog and -x $prog ) {
           $self->{'compressext'} = $StandardCompressPrograms{$cmd};
-          print $p . "Kompressionsprogramm in '$prog' gefunden.\n" if $self->verbose() > 1;
+          print $p . "Kompressionsprogramm in '$prog' gefunden.\n" if verbose() > 1;
           return $prog;
         }
       }
@@ -395,22 +391,22 @@ sub compresscmd_statement($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::compresscmd_statement(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::compresscmd_statement(): " : "";
 
   my ( $cmd, $name );
   my ( @Values );
 
   if ( $in_fd ) {
     warn $p . "Die Direktive 'compresscmd' ist nicht innerhalb von Logdatei-Definitionen erlaubt" .
-              " (Datei '$f', Zeile '$f').\n" if $self->{'verbose'};
+              " (Datei '$f', Zeile '$f').\n" if verbose();
     return;
   }
 
   $cmd = $line;
   $cmd =~ s/^\S+\s*//;
-  @Values = $cmd ? $self->parts( $cmd ) : ();
+  @Values = $cmd ? parts( $cmd ) : ();
   unless ( $Values[0] ) {
-    warn $p . "Direktive 'compresscmd' ohne dazugehoeriges Kommando gegeben (Datei '$f', Zeile '$f').\n" if $self->{'verbose'};
+    warn $p . "Direktive 'compresscmd' ohne dazugehoeriges Kommando gegeben (Datei '$f', Zeile '$f').\n" if verbose();
     return;
   }
   $cmd = $Values[0];
@@ -421,7 +417,7 @@ sub compresscmd_statement($$$$$) {
   }
 
   warn $p . "Das gegebene Kompressions-Kommando ist ungueltig, verwende das alte " .
-            "Kommando '" . $self->{'compress_cmd'} . "' (Datei '$f', Zeile '$f').\n" if $self->{'verbose'};
+            "Kommando '" . $self->{'compress_cmd'} . "' (Datei '$f', Zeile '$f').\n" if verbose();
 
 }
 
@@ -439,7 +435,7 @@ sub default_compress($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'compress'} = $self->to_bool($nv);
+    $self->{'default'}{'compress'} = to_bool($nv);
   }
   return $self->{'default'}{'compress'};
 
@@ -552,7 +548,7 @@ sub default_dateext($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'dateext'} = $self->to_bool($nv);
+    $self->{'default'}{'dateext'} = to_bool($nv);
   }
   return $self->{'default'}{'dateext'};
 
@@ -592,7 +588,7 @@ sub default_delaycompress($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'delaycompress'} = $self->to_bool($nv);
+    $self->{'default'}{'delaycompress'} = to_bool($nv);
   }
   return $self->{'default'}{'delaycompress'};
 
@@ -632,7 +628,7 @@ sub default_if_empty($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'if_empty'} = $self->to_bool($nv);
+    $self->{'default'}{'if_empty'} = to_bool($nv);
   }
   return $self->{'default'}{'if_empty'};
 
@@ -652,7 +648,7 @@ sub default_max_age($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'max_age'} = $self->to_int($nv);
+    $self->{'default'}{'max_age'} = to_int($nv);
   }
   return $self->{'default'}{'max_age'};
 
@@ -672,7 +668,7 @@ sub default_missingok($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'missingok'} = $self->to_bool($nv);
+    $self->{'default'}{'missingok'} = to_bool($nv);
   }
   return $self->{'default'}{'missingok'};
 
@@ -810,7 +806,7 @@ sub default_period($;$) {
       if ( $ValidPeriods{$nv} ) {
         $self->{'default'}{'period'} = $ValidPeriods{$nv};
       } else {
-        $nv = $self->period2days($nv);
+        $nv = period2days($nv);
         $self->{'default'}{'period'} = $nv if defined $nv;
       }
     }
@@ -833,7 +829,7 @@ sub default_rotate($;$) {
   my $nv;
   if ( @_ ) {
     $nv = shift;
-    $self->{'default'}{'rotate'} = $self->to_int($nv);
+    $self->{'default'}{'rotate'} = to_int($nv);
   }
   return $self->{'default'}{'rotate'};
 
@@ -854,7 +850,7 @@ sub default_size($;$) {
   if ( @_ ) {
     $nv = shift;
     if ( defined $nv ) {
-      $val = $self->human2byte($nv);
+      $val = human2byte($nv);
       $self->{'default'}{'size'} = $val if defined $val;
     }
   }
@@ -878,9 +874,9 @@ sub directive($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::directive(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::directive(): " : "";
 
-  print $p . "Untersuche '$line' (Datei '$f', Zeilennr $linenr) ...\n" if $self->verbose() > 5;
+  print $p . "Untersuche '$line' (Datei '$f', Zeilennr $linenr) ...\n" if verbose() > 5;
   my ( $directive, $val ) = $line =~ /^(\S+)\s*(.*)/;
   my ( $key, $negated, $name, $pattern, $wert );
   my ( @Values );
@@ -966,7 +962,7 @@ sub directive($$$$$) {
   if ( $directive =~ /^(not?)?($pattern)$/i ) {
     $negated = $1;
     $key     = lc($2);
-    print $p . "Untersuche boolsche Direktive '$key' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche boolsche Direktive '$key' ...\n" if verbose() > 5;
     if ( defined $val and $val ne "" ) {
       warn $p . "Wert '$val' hinter logischer Direktive $directive gefunden (Datei '$f', Zeile $linenr)\n";
     }
@@ -975,7 +971,7 @@ sub directive($$$$$) {
       warn $p . "Kompression unmoeglich, kein Kompressions-Kommando gegeben (Datei '$f', Zeile $linenr)\n";
       $val = 0;
     }
-    print $p . "Setze '$key' in '$wo' auf $val.\n" if $self->verbose() > 5;
+    print $p . "Setze '$key' in '$wo' auf $val.\n" if verbose() > 5;
     $self->{$wo}{$key} = $val;
     return 1;
   }
@@ -985,9 +981,9 @@ sub directive($$$$$) {
   if ( $directive =~ /^(not?)?($pattern)$/i ) {
     $negated = $1;
     $key     = lc($2);
-    print $p . "Untersuche Integer-Direktive '$key' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche Integer-Direktive '$key' ...\n" if verbose() > 5;
     if ( $DirectivesWithValues{$key} ) {
-      print $p . "Direktive '$key' muss einen Wert haben.\n" if $self->verbose() > 5;
+      print $p . "Direktive '$key' muss einen Wert haben.\n" if verbose() > 5;
       unless ( defined $val and $val !~ /^\s*$/ ) {
         warn $p . "Direktive '$key' ohne erforderlichen Wert angegeben (Datei '$f', Zeile $linenr).\n";
         return 1;
@@ -999,7 +995,7 @@ sub directive($$$$$) {
       if ( not defined($val) or $val =~ /^\s*$/ ) {
         $wert = 1;
       } else {
-        $wert = $self->to_int($val);
+        $wert = to_int($val);
       }
     }
     unless ( defined $wert ) {
@@ -1015,9 +1011,9 @@ sub directive($$$$$) {
   if ( $directive =~ /^($pattern)$/i ) {
     $negated = $1;
     $key     = lc($2);
-    print $p . "Untersuche String-Direktive '$key' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche String-Direktive '$key' ...\n" if verbose() > 5;
     if ( $DirectivesWithValues{$key} ) {
-      print $p . "Direktive '$key' muss einen Wert haben.\n" if $self->verbose() > 5;
+      print $p . "Direktive '$key' muss einen Wert haben.\n" if verbose() > 5;
       unless ( defined $val and $val !~ /^\s*$/ ) {
         warn $p . "Direktive '$key' ohne erforderlichen Wert angegeben (Datei '$f', Zeile $linenr).\n";
         return 1;
@@ -1035,13 +1031,13 @@ sub directive($$$$$) {
   $pattern = join( "|", keys %GlobalDirectives );
   if ( $directive =~ /^($pattern)$/i ) {
     $key     = lc($1);
-    print $p . "Untersuche globale Direktive '$key' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche globale Direktive '$key' ...\n" if verbose() > 5;
     if ( $in_fd ) {
       warn $p . "Direktive '$key' ist nicht innerhalb von Logdatei-Definitionen erlaubt (Datei '$f', Zeile $linenr).\n";
       return 1;
     }
     if ( $DirectivesWithValues{$key} ) {
-      print $p . "Direktive '$key' muss einen Wert haben.\n" if $self->verbose() > 5;
+      print $p . "Direktive '$key' muss einen Wert haben.\n" if verbose() > 5;
       unless ( defined $val and $val ne "" ) {
         warn $p . "Direktive '$key' ohne erforderlichen Wert angegeben (Datei '$f', Zeile $linenr).\n";
         return 1;
@@ -1050,7 +1046,7 @@ sub directive($$$$$) {
     $val = "" if $key eq "compressoptions" and not defined $val;
     if ( $key eq 'compresscmd' ) {
       if ( $name = $self->check_compress_program( $val ) ) {
-        print $p . "Setze 'compress_cmd' auf '$name'.\n" if $self->verbose() > 4;
+        print $p . "Setze 'compress_cmd' auf '$name'.\n" if verbose() > 4;
         $self->{'compress_cmd'} = $name;
         return 1;
       }
@@ -1063,7 +1059,7 @@ sub directive($$$$$) {
         return 1;
       }
     }
-    print $p . "Setze '$key' auf '$val'.\n" if $self->verbose() > 4;
+    print $p . "Setze '$key' auf '$val'.\n" if verbose() > 4;
     $self->{$key} = $val;
     return 1;
   }
@@ -1073,21 +1069,21 @@ sub directive($$$$$) {
   if ( $directive =~ /^($pattern)$/i ) {
 
     $key     = lc($1);
-    print $p . "Untersuche Rotations-Perioden-Direktive '$key' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche Rotations-Perioden-Direktive '$key' ...\n" if verbose() > 5;
 
     if ( $ValidPeriods{$key} ) {
       warn $p . "Direktive '$key' darf keine Argumente haben ( '$val' in Datei '$f', Zeile $linenr).\n"
            if defined $val and $val !~ /^\s*$/;
       $val = $ValidPeriods{$key};
     } else {
-      $val = $self->period2days($val);
+      $val = period2days($val);
       unless ( defined $val ) {
         warn $p . "Ungueltige Perioden-Definition (Datei '$f', Zeile $linenr).\n";
         return 1;
       }
     }
 
-    print $p . "Setze Periode in '$wo' auf '$val'.\n" if $self->verbose() > 5;
+    print $p . "Setze Periode in '$wo' auf '$val'.\n" if verbose() > 5;
     $self->{$wo}{'period'} = $val;
     return 1;
   }
@@ -1096,8 +1092,8 @@ sub directive($$$$$) {
   if ( $directive =~ /^(no)?dateext$/ ) {
 
     $negated = $1;
-    print $p . "Untersuche Direktive 'dateext' ...\n" if $self->verbose() > 5;
-    @Values = $val ? $self->parts( $val ) : ();
+    print $p . "Untersuche Direktive 'dateext' ...\n" if verbose() > 5;
+    @Values = $val ? parts( $val ) : ();
 
     if ( $negated ) {
       $val = 0;
@@ -1117,11 +1113,11 @@ sub directive($$$$$) {
       }
     }
 
-    print $p . "Setze dateext in '$wo' auf $val.\n" if $self->verbose() > 5;
+    print $p . "Setze dateext in '$wo' auf $val.\n" if verbose() > 5;
     $self->{$wo}{'dateext'} = $val;
 
     if ( defined $name ) {
-      print $p . "Setze datepattern in '$wo' auf '$name'.\n" if $self->verbose() > 5;
+      print $p . "Setze datepattern in '$wo' auf '$name'.\n" if verbose() > 5;
       $self->{$wo}{'datepattern'} = $name;
     }
     return 1;
@@ -1131,8 +1127,8 @@ sub directive($$$$$) {
   # Erstellungs-Modi festlegen
   if ( $directive eq 'create' ) {
 
-    print $p . "Untersuche Direktive 'create' ...\n" if $self->verbose() > 5;
-    @Values = $val ? $self->parts( $val ) : ();
+    print $p . "Untersuche Direktive 'create' ...\n" if verbose() > 5;
+    @Values = $val ? parts( $val ) : ();
     $self->{$wo}{'copytruncate'} = 0;
 
     # Mode (Permission) definition
@@ -1172,15 +1168,15 @@ sub directive($$$$$) {
     $negated = $1;
     $directive = 'olddir';
 
-    print $p . "Untersuche Direktive 'olddir' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche Direktive 'olddir' ...\n" if verbose() > 5;
 
     if ( $negated  ) {
-      print $p . "Direktive 'olddir' wird in '$wo' enfernt.\n" if $self->verbose() > 5;
+      print $p . "Direktive 'olddir' wird in '$wo' enfernt.\n" if verbose() > 5;
       $self->{$wo}{'olddir'} = undef;
       return 1;
     }
 
-    @Values = $val ? $self->parts( $val ) : ();
+    @Values = $val ? parts( $val ) : ();
 
     if ( $Values[0] ) {
       $self->{$wo}{'olddir'} = {} unless $self->{$wo}{'olddir'};
@@ -1229,17 +1225,17 @@ sub directive($$$$$) {
   if ( $line =~ /^size(?:\s*(?:=|\s)\s*(.*)?)?$/i ) {
     $directive = 'size';
     $val = $1;
-    print $p . "Untersuche Direktive 'size' mit Groesse '" . (defined $val ? $val : "<undef>") . "' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche Direktive 'size' mit Groesse '" . (defined $val ? $val : "<undef>") . "' ...\n" if verbose() > 5;
     unless ( defined $val ) {
       warn $p . "Ungueltige Groessen-Definition (Datei '$f', Zeile $linenr).\n";
       return 1;
     }
-    $wert = $self->human2byte($val);
+    $wert = human2byte($val);
     unless ( defined $wert ) {
       warn $p . "Ungueltige Groessen-Definition ('$val' in Datei '$f', Zeile $linenr).\n";
       return 1;
     }
-    print $p . "Setze Groesse in '$wo' auf '$wert'.\n" if $self->verbose() > 5;
+    print $p . "Setze Groesse in '$wo' auf '$wert'.\n" if verbose() > 5;
     $self->{$wo}{'size'} = $wert;
     return 1;
   }
@@ -1248,14 +1244,14 @@ sub directive($$$$$) {
   if ( $directive =~ /^taboo(ext|file|prefix)$/ ) {
 
     $key     = lc($1);
-    print $p . "Untersuche globale Direktive '$key' ...\n" if $self->verbose() > 5;
+    print $p . "Untersuche globale Direktive '$key' ...\n" if verbose() > 5;
 
     if ( $in_fd ) {
       warn $p . "Direktive '$directive' ist nicht innerhalb von Logdatei-Definitionen erlaubt (Datei '$f', Zeile $linenr).\n";
       return 1;
     }
 
-    @Values = $val ? $self->parts( $val ) : ();
+    @Values = $val ? parts( $val ) : ();
     my $extend = 0;
     if ( $Values[0] and $Values[0] eq "+" ) {
       $extend = 1;
@@ -1293,7 +1289,7 @@ sub do_include($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::do_include(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::do_include(): " : "";
 
   my ( $if, $dir, $basename, $name, $bname, $found, $pattern );
 
@@ -1306,7 +1302,7 @@ sub do_include($$$$$) {
   # Das Wort 'include selbst wegschmeissen
   $line =~ s/^\S+\s*//;
 
-  my @Values = $self->parts($line);
+  my @Values = parts($line);
 
   # Fehlermeldung, wenn der Dateiname fehlt
   unless ( @Values ) {
@@ -1333,24 +1329,24 @@ sub do_include($$$$$) {
       warn $p . "Rekursives Includen von '$if' in Datei '$f', Zeile $linenr.\n";
       return undef;
     }
-    print $p . "Include Datei '$if' ...\n" if $self->{'verbose'} > 1;
+    print $p . "Include Datei '$if' ...\n" if verbose() > 1;
     $self->{'included_files'}{$if} = 1;
     return $self->read( $f );
   }
 
   if ( -d $if ) {
 
-    print $p . "Include Verzeichnis '$if' ...\n" if $self->{'verbose'} > 1;
+    print $p . "Include Verzeichnis '$if' ...\n" if verbose() > 1;
 
     foreach $name ( glob( "$if/.* $if/*") ) {
 
       $bname = basename( $name );
       next if $bname eq "." or $bname eq "..";
 
-      print $p . "Checke Include-Datei '$if/$bname' ...\n" if $self->{'verbose'} > 1;
+      print $p . "Checke Include-Datei '$if/$bname' ...\n" if verbose() > 1;
       if ( -d "$if/$bname" ) {
         # Keine Verzeichnis-Rekursion !!!
-        print $p . "Verzeichnis '$if/$bname' wird uebergangen.\n" if $self->{'verbose'} > 1;
+        print $p . "Verzeichnis '$if/$bname' wird uebergangen.\n" if verbose() > 1;
         next;
       }
 
@@ -1359,7 +1355,7 @@ sub do_include($$$$$) {
       foreach $pattern ( @{$self->{'taboo'}} ) {
         if ( $bname =~ /$pattern/ ) {
           $found = 1;
-          print $p . "Datei '$if/$bname' matcht Tabu-Pattern '$pattern', wird uebergangen.\n" if $self->{'verbose'} > 1;
+          print $p . "Datei '$if/$bname' matcht Tabu-Pattern '$pattern', wird uebergangen.\n" if verbose() > 1;
           last;
         }
       }
@@ -1369,7 +1365,7 @@ sub do_include($$$$$) {
         warn $p . "Rekursives Includen von '$name' in Datei '$f', Zeile $linenr.\n";
         return undef;
       }
-      print $p . "Include Datei '$name' ...\n" if $self->{'verbose'} > 1;
+      print $p . "Include Datei '$name' ...\n" if verbose() > 1;
       $self->{'included_files'}{$name} = 1;
 
       return undef unless $self->read( $name );
@@ -1400,9 +1396,9 @@ sub do_logfilescript($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::do_logfilescript(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::do_logfilescript(): " : "";
 
-  print $p . "Scriptdefinition '$line' (Datei '$f', Zeilennr $linenr) ...\n" if $self->verbose() > 5;
+  print $p . "Scriptdefinition '$line' (Datei '$f', Zeilennr $linenr) ...\n" if verbose() > 5;
   my ( $directive, $val ) = $line =~ /^(\S+)\s*(.*)/;
   $directive = lc($directive);
 
@@ -1411,7 +1407,7 @@ sub do_logfilescript($$$$$) {
     return undef;
   }
 
-  my @Values = $val ? $self->parts( $val ) : ();
+  my @Values = $val ? parts( $val ) : ();
 
   my $name;
   if ( $Values[0] ) {
@@ -1444,9 +1440,9 @@ sub do_script($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::do_script(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::do_script(): " : "";
 
-  print $p . "Scriptdefinition '$line' (Datei '$f', Zeilennr $linenr) ...\n" if $self->verbose() > 5;
+  print $p . "Scriptdefinition '$line' (Datei '$f', Zeilennr $linenr) ...\n" if verbose() > 5;
   my ( $directive, $val ) = $line =~ /^(\S+)\s*(.*)/;
   $directive = lc($directive);
 
@@ -1455,7 +1451,7 @@ sub do_script($$$$$) {
     return undef;
   }
 
-  my @Values = $val ? $self->parts( $val ) : ();
+  my @Values = $val ? parts( $val ) : ();
 
   unless ( $Values[0] ) {
     warn $p . "Direktive '$directive' ohne gueltigen Scriptnamen (Datei '$f', Zeile $linenr).\n";
@@ -1476,52 +1472,6 @@ sub do_script($$$$$) {
 
 #------------------------------------------------------------------------------------------
 
-=head2 human2byte( $wert )
-
-Wandelt eine Bytzahl, die fuer den Menschen lesbar ist, in einen Integer-Wert von Bytes um.
-
-Z.Bsp.:
-
-  '10 KByte' => 10240
-
-=cut
-
-sub human2byte($$) {
-
-  my $self = shift;
-  my $val = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::human2byte(): " : "";
-
-  return undef unless defined $val;
-  print $p . "aufgerufen mit '" . $val . "'.\n" if $self->verbose() > 5;
-  return 0 if $val =~ /^\s*$/;
-
-  my ( $unit, $factor );
-
-  if ( $val =~ /^\s*(\d+(?:\.\d*)?)\s*(?:([kmg])(?:b|byte)?)?\s*$/i ) {
-    $factor = 1;
-    $val = $1 + 0;
-    $unit = lc( $2 || 'b' );
-    if ( $unit eq 'k' ) {
-      $factor = 1024;
-    } elsif ( $unit eq 'm' ) {
-      $factor = 1024 * 1024;
-    } elsif ( $unit eq 'g' ) {
-      $factor = 1024 * 1024 * 1024;
-    }
-    print $p . "Faktor fuer '$unit': " . $factor . "'.\n" if $self->verbose() > 5;
-    $val = int( $val * $factor );
-  } else {
-    warn $p . "Ungueltige Byte-Angabe: '$val'.\n";
-    $val = undef;
-  }
-
-  return $val;
-
-}
-
-#------------------------------------------------------------------------------------------
-
 =head2 log_begin( $_, $f, $in_fd, $linenr );
 
 Verarbeitet den Beginn einer Logfile-Definition (Geschweifte Klammer auf).
@@ -1535,7 +1485,7 @@ sub log_begin($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::log_begin(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::log_begin(): " : "";
 
   my ( @Values, @Files, @FileGlob );
   my ( $name, $file );
@@ -1546,7 +1496,7 @@ sub log_begin($$$$$) {
   }
 
   $line =~ s/\s*{$//;
-  @Values = $self->parts( $line );
+  @Values = parts( $line );
 
   unless ( @Values ) {
     warn $p . "Kein Dateiname fuer eine Logdatei am Beginn der Logdatei-Definition in Konfigdatei '" .
@@ -1554,7 +1504,7 @@ sub log_begin($$$$$) {
     return undef;
   }
 
-  print "\nStart Logfile-Definition:\n - " . join( "\n - ", @Values ) . "\n" if $self->{'verbose'} > 2;
+  print "\nStart Logfile-Definition:\n - " . join( "\n - ", @Values ) . "\n" if verbose() > 2;
 
   @Files = ();
   foreach $name ( @Values ) {
@@ -1618,7 +1568,7 @@ sub log_end($$$$$) {
   my $f      = shift || "'unknown'";
   my $in_fd  = shift || 0;
   my $linenr = shift || "'unknown'";
-  my $p = $self->verbose() ? __PACKAGE__ . "::log_end(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::log_end(): " : "";
 
   my ( $name );
 
@@ -1627,8 +1577,8 @@ sub log_end($$$$$) {
     return undef;
   }
 
-  print "Ende Logfile-Definition\n" if $self->{'verbose'} > 2;
-  print $p . "\$self->{'newfile'}: " . Dumper $self->{'newfile'} if $self->{'verbose'} > 3;
+  print "Ende Logfile-Definition\n" if verbose() > 2;
+  print $p . "\$self->{'newfile'}: " . Dumper $self->{'newfile'} if verbose() > 3;
 
   foreach $name ( @{$self->{'newfile'}{'files'}} ) {
     %{$self->{'logfiles'}{$name}}             = %{$self->{'newfile'}};
@@ -1662,7 +1612,7 @@ sub new_script_name($;$) {
 
   my $self = shift;
   my $pre  = shift || "script";
-  my $p = $self->verbose() ? __PACKAGE__ . "::new_script_name(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::new_script_name(): " : "";
 
   my $i = 0;
   my $name = "$pre$i";
@@ -1683,122 +1633,6 @@ sub new_script_name($;$) {
   return $name;
 }
 
-#------------------------------------------------------------------------------------
-
-=head2 parts( $string )
-
-Zerlegt einen String an Whitespaces in seine Bestandteile unter Beachtung
-von Quotierung und gibt diese als Array zurueck.
-
-=cut
-
-sub parts($$) {
-
-  my $self = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::parts(): " : "";
-
-  my $term  = shift;
-  my @Parts = ();
-  my $part;
-
-  while ( $term =~ /"([^"\\]*(?:\\.[^"\\]*)*)"|(\S+)/g ) {
-    $part = $1 || $2;
-    $part =~ s/\\"/"/g;
-    push @Parts, $part;
-  }
-
-  return @Parts;
-
-}
-
-#------------------------------------------------------------------------------------------
-
-=head2 period2days( $period_string )
-
-Wandelt eine Perioden-Angabe der Form "5d 8h" in eine Anzahl von Tagen um.
-
-=cut
-
-sub period2days($$) {
-
-  my $self = shift;
-  my $period = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::period2days(): " : "";
-
-  $period = "" unless defined $period;
-  my $orig = $period;
-  print $p . "Aufgerufen mit '" . $period . "'.\n" if $self->verbose() > 5;
-  $period =~ s/^\s+//;
-  $period =~ s/\s+$//;
-
-  if ( $period eq "" ) {
-    warn $p . "Ungültige Periodenangabe.\n";
-    return undef;
-  }
-
-  if ( $period =~ /^now$/i ) {
-    # Rotation immer sofort
-    return 0;
-  }
-
-  if ( $period =~ /^never$/i ) {
-    # Rotation in 400 Jahren (also hoffentlich nie)
-    return 36525 * 4;
-  }
-
-  my $days = undef;
-  my $t = 0;
-
-  if ( $period =~ /(\d+)\s*h(?:ours?)?/i ) {
-    $t = $1;
-    print $p . "$t Stunden.\n" if $self->verbose() > 5;
-    $t /= 24;
-    $days += $t;
-    $period =~ s/\d+\s*h(?:ours?)?//i;
-  }
-  print $p . "Noch uebrig nach Stunden: '$period'.\n" if $self->verbose() > 5;
-
-  if ( $period =~ /(\d+(?:\.\d*)?)\s*w(?:eeks?)?/i ) {
-    $t = $1;
-    print $p . "$t Wochen.\n" if $self->verbose() > 5;
-    $t *= 7;
-    $days += $t;
-    $period =~ s/\d+(?:\.\d*)?\s*w(?:eeks?)?//i;
-  }
-  print $p . "Noch uebrig nach Wochen: '$period'.\n" if $self->verbose() > 5;
-
-  if ( $period =~ /(\d+(?:\.\d*)?)\s*m(?:onths?)?/i ) {
-    $t = $1;
-    print $p . "$t Monate.\n" if $self->verbose() > 5;
-    $t *= 30.4;
-    $days += $t;
-    $period =~ s/\d+(?:\.\d*)?\s*m(?:onths?)?//i;
-  }
-  print $p . "Noch uebrig nach Monaten: '$period'.\n" if $self->verbose() > 5;
-
-  if ( $period =~ /(\d+(?:\.\d*)?)\s*y(?:ears?)?/i ) {
-    $t = $1;
-    print $p . "$t Jahre.\n" if $self->verbose() > 5;
-    $t *= 365;
-    $days += $t;
-    $period =~ s/\d+(?:\.\d*)?\s*y(?:ears?)?//i;
-  }
-  print $p . "Noch uebrig nach Jahren: '$period'.\n" if $self->verbose() > 5;
-
-  if ( $period =~ /(\d+(?:\.\d*)?)\s*(?:d(?:ays?)?\s*)?$/i ) {
-    $t = $1;
-    print $p . "$t Tage.\n" if $self->verbose() > 5;
-    $days += $t;
-    $period =~ s/\d+(?:\.\d*)?\s*(?:d(?:ays?)?\s*)?$//i;
-  }
-  print $p . "Noch uebrig nach Tagen: '$period'.\n" if $self->verbose() > 5;
-
-  warn $p . "Ungueltige Angabe einer Periode: '" . $orig . "'.\n" unless $period =~ /^\s*$/;
-
-  return $days;
-
-}
-
 #------------------------------------------------------------------------------------------
 
 =head2 read( $file )
@@ -1811,12 +1645,12 @@ sub read($$) {
 
   my $self = shift;
   my $file = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::read(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::read(): " : "";
 
   my ( $dir, $f, $real_dir, $linenr, $in_fd, $in_script, $newscript, $lastrow, $pattern );
   my ( @Lines );
 
-  print $p . "Aufgerufen mit '" . $file . "'.\n" if $self->verbose() > 2;
+  print $p . "Aufgerufen mit '" . $file . "'.\n" if verbose() > 2;
 
   unless ( $file ) {
     carp $p . "Keine Datei uebergeben.\n";
@@ -1835,7 +1669,7 @@ sub read($$) {
     $f = $file;
   }
   $real_dir = abs_path( $dir );
-  print $p . "Real-Path: '$real_dir', Basename: '$f'\n" if $self->{'verbose'} > 2;
+  print $p . "Real-Path: '$real_dir', Basename: '$f'\n" if verbose() > 2;
   $f = $real_dir . "/" . $f;
 
   if ( $self->{'configfiles'}{$f} ) {
@@ -1951,11 +1785,11 @@ Setzt die $self->{'defaults'} - Datenstruktur auf Vorgabewerte zurueck.
 sub reset_defaults($) {
 
   my $self = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::reset_defaults(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::reset_defaults(): " : "";
   my $uid      = $>;
   my ( $gid )  = $) =~ /^(\d+)/;
 
-  print $p . "Setze \$self->{'defaults'} auf Vorgabewerte zurueck.\n" if $self->verbose > 3;
+  print $p . "Setze \$self->{'defaults'} auf Vorgabewerte zurueck.\n" if verbose() > 3;
 
   $self->{'default'} = {
     'compress'         => undef,
@@ -1988,105 +1822,7 @@ sub reset_defaults($) {
 
 #------------------------------------------------------------------------------------------
 
-=head2 to_bool( $wert )
-
-Wandelt den uebergebenen Scalar sicher in einen Wahrheitswert (0 oder 1) um.
-
-=cut
-
-sub to_bool($$) {
-
-  my $self = shift;
-  my $val = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::to_bool(): " : "";
-
-  return 0 unless defined $val;
-  print $p . "aufgerufen mit '" . $val . "'.\n" if $self->verbose() > 5;
-  return 0 if $val =~ /^\s*$/;
-
-  if ( $val =~ /^\s*y(?:es?)?/i or
-       $val =~ /^\s*ja?/i or
-       $val =~ /^\s*[wt]\s*$/i or
-       $val =~ /^\s*on\s*$/i or
-       $val =~ /^\s*wahr|true/i ) {
-    return 1;
-  }
-
-  if ( $val =~ /^\s*no?/i or
-       $val =~ /^\s*ne(?:in?)?/i or
-       $val =~ /^\s*f\s*$/i or
-       $val =~ /^\s*off\s*$/i or
-       $val =~ /^\s*falsch|false/i ) {
-    return 0;
-  }
-
-  my $intval = $self->to_int($val);
-  if ( defined $intval ) {
-    return $intval ? 1 : 0;
-  }
-
-  return $val ? 1 : 0;
-
-}
-
-#------------------------------------------------------------------------------------------
-
-=head2 to_int( $wert, $signed )
-
-Wandelt den übergebenen Wert sicher in eine Integer-Zahl um.
-
-Dabei legt der optionale logische Parameter $signed fest, ob auch
-vorzeichenbehaftete Werte zulässig sind.
-
-Wenn keine gültige Zahl übergeben wird, wird undef zurückgegeben.
-
-=cut
-
-sub to_int($$;$) {
-
-  my $self = shift;
-  my $val = shift;
-  my $signed = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::to_int(): " : "";
-
-  return undef unless defined $val;
-  print $p . "aufgerufen mit '" . $val . "'.\n" if $self->verbose() > 5;
-  unless ( $val =~ /\d/ ) {
-    return undef;
-  }
-
-  if ( $signed ) {
-    $val =~ s/.*((-\s*)?\d+).*/$1$2/;
-  } else {
-    $val =~ s/.*(\d+).*/$1/;
-  }
-  print $p . "Neuer Wert: '" . ( defined($val) ? $val : "<undef>" ) . "'.\n" if $self->verbose() > 5;
-
-  return $val + 0;
-
-}
-
-#------------------------------------------------------------------------------------------
-
-=head2 verbose()
-
-Setzt bzw. gibt den Verbose-Level dieses Moduls zurueck.
-
-=cut
-
-sub verbose($;$) {
-
-  my $self = shift;
-  my $nv;
-  if ( @_ ) {
-    $nv = shift;
-    $nv = defined $nv ? ( $nv =~ /(\d+)/ ? $1 : 0 ) : 0;
-    $self->{'verbose'} = $nv;
-  }
-  return $self->{'verbose'};
-
-}
-
+1;
 
 __END__
 
index 2f1bbc001cdbf055b62643bf2a6da2d9dee1b86a..05f40c3d8bf8db317b8fd9174b0c733af466b6ff 100644 (file)
@@ -11,7 +11,6 @@ B<LogRotate/StateFile.pm> - Logrotate Statusdatei Modul
 
   my $statefile = new LogRotate::StateFile();
 
-  $statefile->verbose(2);
   $statefile->file('/var/lib/logrotate.status');
 
   if ( $statefile->check() ) { ...
@@ -36,23 +35,23 @@ use Data::Dumper;
 use POSIX qw( mktime );
 use Cwd qw(cwd getcwd abs_path);
 
+use LogRotate::Common;
+
 our $AUTOLOAD;
 our %ok_field;
 
-my $MainVersion = "2.0";
-
 my $Revis = <<'ENDE';
   $Revision$
 ENDE
 $Revis =~ s/^.*:\s*(\S+)\s*\$.*/$1/s;
-our $VERSION = $MainVersion . "." . $Revis;
+our $VERSION = $LogRotate::Common::LOGROTATE_VERSION . "." . $Revis;
 
 $Data::Dumper::Indent = 1;
 $Data::Dumper::Sortkeys = 1;
 
 use constant default_firstline_statusfile => "Logrotate State -- Version 3";
 
-my @ValidFields = qw( parent verbose file test );
+my @ValidFields = qw( parent file test );
 
 for my $attr ( @ValidFields ) {
   $ok_field{$attr}++;
@@ -75,14 +74,14 @@ sub new {
   my ( $res, $cmd );
 
   my $self = {
-    'verbose'          => 0,
+    'test'     => 0,
     'file'     => '/val/lib/logrotate.status',
     @_
   };
 
   $res = bless $self, $class;
 
-  my $p = $self->verbose() ? __PACKAGE__ . "::new(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::new(): " : "";
 
   return $res;
 
@@ -92,7 +91,7 @@ sub new {
 
 =head2 AUTOLOAD()
 
-Autoload-Methode zum Zugriff auf alle möglichen Elemente.
+Autoload-Methode zum Zugriff auf alle moeglichen Elemente.
 
 =cut
 
@@ -109,7 +108,6 @@ sub AUTOLOAD {
 
   return $self->file(@_)    if $attr eq "file";
   return $self->test(@_)    if $attr eq "test";
-  return $self->verbose(@_) if $attr eq "verbose";
 
   if ( @_ ) {
     $val = shift;
@@ -131,9 +129,9 @@ sub check($;$) {
 
   my $self = shift;
   my $file = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::check(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::check(): " : "";
 
-  print $p . "Aufgerufen mit '" . ( defined $file ? $file : "<undef>" ) . "'.\n" if $self->verbose() > 2;
+  print $p . "Aufgerufen mit '" . ( defined $file ? $file : "<undef>" ) . "'.\n" if verbose() > 2;
 
   my $res = $self->read($file);
 
@@ -174,11 +172,11 @@ sub read($;$) {
 
   my $self = shift;
   my $file = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::read(): " : "";
+  my $p = verbose() ? __PACKAGE__ . "::read(): " : "";
 
   my $res = {};
 
-  print $p . "Aufgerufen mit '" . ( defined $file ? $file : "<undef>" ) . "'.\n" if $self->verbose() > 2;
+  print $p . "Aufgerufen mit '" . ( defined $file ? $file : "<undef>" ) . "'.\n" if verbose() > 2;
 
   my ( $f, $dir, $real_dir, $logfile, $date, $time_t );
 
@@ -195,7 +193,7 @@ sub read($;$) {
     $f = $file;
   }
   $real_dir = abs_path( $dir );
-  print $p . "Real-Path: '$real_dir', Basename: '$f'\n" if $self->{'verbose'} > 2;
+  print $p . "Real-Path: '$real_dir', Basename: '$f'\n" if verbose() > 2;
   $f = $real_dir . "/" . $f;
 
   
@@ -205,7 +203,7 @@ sub read($;$) {
     return $res;
   }
 
-  print $p . "Lese Datei '$f' ...\n" if $self->verbose();
+  print $p . "Lese Datei '$f' ...\n" if verbose();
   unless ( open FILE, "<$f" ) {
     warn $p . "Konnte Datei '$f' nicht oeffnen: $!\n";
     return undef;
@@ -230,7 +228,7 @@ sub read($;$) {
 
     next unless $_;
 
-    ( $logfile, $date ) = $self->parts( $_ );
+    ( $logfile, $date ) = parts( $_ );
     if ( $logfile and $date ) {
       my @Date = $date =~ /^\s*(\d+)[_\-](\d+)[_\-](\d+)(?:[\s\-_]+(\d+)[_\-:](\d+)[_\-:](\d+))?/;
       unless ( @Date ) {
@@ -276,34 +274,6 @@ sub file($;$) {
 
 }
 
-#------------------------------------------------------------------------------------
-
-=head2 parts( $string )
-
-Zerlegt einen String an Whitespaces in seine Bestandteile unter Beachtung
-von Quotierung und gibt diese als Array zurueck.
-
-=cut
-
-sub parts($$) {
-
-  my $self = shift;
-  my $p = $self->verbose() ? __PACKAGE__ . "::parts(): " : "";
-
-  my $term  = shift;
-  my @Parts = ();
-  my $part;
-
-  while ( $term =~ /"([^"\\]*(?:\\.[^"\\]*)*)"|(\S+)/g ) {
-    $part = $1 || $2;
-    $part =~ s/\\"/"/g;
-    push @Parts, $part;
-  }
-
-  return @Parts;
-
-}
-
 #------------------------------------------------------------------------------------------
 
 =head2 test()
@@ -326,27 +296,6 @@ sub test($;$) {
 
 #------------------------------------------------------------------------------------------
 
-=head2 verbose()
-
-Setzt bzw. gibt den Verbose-Level dieses Moduls zurueck.
-
-=cut
-
-sub verbose($;$) {
-
-  my $self = shift;
-  my $nv;
-  if ( @_ ) {
-    $nv = shift;
-    $nv = defined $nv ? ( $nv =~ /(\d+)/ ? $1 : 0 ) : 0;
-    $self->{'verbose'} = $nv;
-  }
-  return $self->{'verbose'};
-
-}
-
-#------------------------------------------------------------------------------------------
-
 1;
 
 __END__
index 4d1fb8d0b216b293ba46da74fcf544af8c9a329b..8e95ba91b1131ff48369cf08a7b164124f681b4d 100755 (executable)
@@ -62,13 +62,13 @@ use Getopt::Long;
 use Data::Dumper;
 
 use LogRotate;
+use LogRotate::Common;
 
-my $MainVersion = "2.0";
 my $Revis = <<'ENDE';
   $Revision$
 ENDE
 $Revis =~ s/^.*:\s*(\S+)\s*\$.*/$1/s;
-our $VERSION = $MainVersion . "." . $Revis;
+our $VERSION = $LogRotate::Common::LOGROTATE_VERSION . "." . $Revis;
 
 $Data::Dumper::Indent = 1;
 $Data::Dumper::Sortkeys = 1;
@@ -129,6 +129,8 @@ if ( $Debug ) {
   $verbose = $Debug unless $verbose;
 }
 
+verbose($verbose);
+
 $test = 1 if $config_check;
 
 unless ( $test ) {
@@ -282,7 +284,7 @@ ENDE
 
 =head2 B<check_pidfile($pidfile)>
 
-Inspiziert das übergebene PID-File.
+Inspiziert das uebergebene PID-File.
 
 =cut
 
@@ -393,120 +395,7 @@ the config file.
 
 =head1 AUTHOR
 
-Frank Brehm <frank.brehm@gmx.de>
-
-=head1 ChangeLog
-
-  $Log: logrotate.pl,v $
-  Revision 1.22  2004/04/28 17:41:03  fbrehm
-  Bug in Auflösung geglobter Logfilenamen bereinigt
-
-  Revision 1.21  2003/09/03 11:51:16  fbrehm
-  Korrektur in check_create() beim Ermitteln der Permissions und Besitzerangaben,
-  in rotate_file() das Wegschmeißen alter rotierter Logfiles reorganisiert,
-  kleine kosmetische Änderungen
-
-  Revision 1.20  2003/09/02 16:35:29  fbrehm
-  FORCE-Modus wird jetzt tatsächlich unterstützt,
-  Rotieren einer einzelnen Datei in rotatate_file() ausgelagert,
-  Unterstützung der Direktive rotate X,
-  Unterstützung der Direktive sharedscripts,
-  Unterstützung der Direktive extension,
-  Fileglobbing als logfile Direktive möglich,
-  dafür C-Kommentare in Config-Datien nicht mehr möglich
-  Setzen von mtime der komprimierten Datei auf die der Original-Datei,
-  Beim Komprimieren wird beste Kompression eingeschaltet.
-
-  Revision 1.19  2003/09/01 18:24:38  fbrehm
-  Fehelrbereinigung in test_for_rotate()
-
-  Revision 1.18  2003/09/01 17:11:59  fbrehm
-  Veränderungen bei der Ausführung der Pre- und Post-Rotate-Scripte.
-
-  Revision 1.17  2003/09/01 17:04:22  fbrehm
-  Änderungen bei der Verbosity,
-  Fehlerbereinigung bei der Vergabe Rechte und Eigentümerschaft erstellte Verzeichnisse,
-  POD-Informationen hinzugefügt
-
-  Revision 1.16  2003/08/29 12:04:52  fbrehm
-  Fehler in check_log_end() beseitigt,
-  Kompatibilität zu Perl 5.005 hergestellt.
-
-  Revision 1.15  2003/08/27 17:07:21  fbrehm
-  Bugbereinigung in rotate_time_over (Jörn) und beim Setzen von noolddir.
-
-  Revision 1.14  2003/08/27 14:39:10  fbrehm
-  Korrekturen an rotate_time_over().
-
-  Revision 1.13  2003/08/27 14:01:54  fbrehm
-  Neuerstellen, chown und chmod nach move nachgepflegt.
-
-  Revision 1.12  2003/08/27 11:01:30  fbrehm
-  Bei includes Pfad davorgehängt,
-  Systemaufrufe im Testmodus unterbunden,
-  Chown der komprimierten Datei nur, wenn andere Besitzrechte.
-
-  Revision 1.11  2003/08/27 08:56:15  fbrehm
-  Funktion compress_files() fertiggestellt.
-
-  Revision 1.10  2003/08/27 07:33:21  fbrehm
-  Fehler in rotate_time_over() bereinigt
-
-  Revision 1.9  2003/08/27 07:20:50  fbrehm
-  Syntaxfehler bereinigt
-
-  Revision 1.8  2003/08/27 07:15:18  fbrehm
-  Scharfmachen von mkdir, copy und move und der Scripte
-
-  Revision 1.7  2003/08/25 19:13:16  fbrehm
-  Funktion write_status() eingefügt mit Aufruf,
-  Funktion compress_files() begonnen.
-
-  Revision 1.6  2003/08/25 17:10:03  fbrehm
-  Funktion get_logfile_target() zur Ermittlung des rotierten Dateinamens eingefügt und in rotate() aufgerufen.
-
-  Revision 1.5  2003/08/25 16:18:43  fbrehm
-  Neue Funktion create_olddir eingefügt,
-  neue Behandlung von olddir mit Create-Mode und Besitzrechten.
-
-  Revision 1.4  2003/08/25 13:03:20  fbrehm
-  Ausgabe des Script-Kommandos vor der Ausführung.
-
-  Revision 1.3  2003/08/25 12:23:20  fbrehm
-  logrotate.pm mit in den Quelltext von logrotate.pl aufgenommen.
-
-  Revision 1.2  2003/08/23 10:35:25  fbrehm
-  Kosmetische Korrekturen: gequotete Key-Literale
-
-  Revision 1.1  2003/08/23 09:53:40  fbrehm
-  Übernahme des Perl-Logrotate-Projekts
-
-
-=cut
-
-=head1 ChangeLog logrotate.pm
-
-  Revision 1.7  2003/08/25 12:03:57  fbrehm
-  Wird in die logrotate.pl mit aufgenommen, da seperat nicht benötigt.
-
-  Revision 1.6  2003/08/25 11:12:52  jvalent
-  Bug mit realpath() bei Perl 5.6.0 bereinigt.
-
-  Revision 1.5  2003/08/23 11:54:07  fbrehm
-  Ausgabe der schreienden Funktion erst ab Verbose-Level > 1
-
-  Revision 1.4  2003/08/23 10:51:16  fbrehm
-  Keine Verzeichnisse innerhalb include-Dirs.
-
-  Revision 1.3  2003/08/23 10:35:25  fbrehm
-  Kosmetische Korrekturen: gequotete Key-Literale
-
-  Revision 1.2  2003/08/23 09:55:38  fbrehm
-  Aktuelle Version des Moduls
-
-  Revision 1.1  2003/08/23 09:53:40  fbrehm
-  Übernahme des Perl-Logrotate-Projekts
-
+Frank Brehm <frank@brehm-online.com>
 
 =cut