X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=onis;h=5c2bb2ef93d2b30cebe8bdbbe8fc122df99d9872;hb=34031a5be99f9952dc602bb4a28c7a826bef5e6d;hp=650d8a5ca429cdbd9e3203cf036cb38d536a8827;hpb=6761942ff0fa8b17ca367bd2b2bfee11fdf80c6b;p=onis.git diff --git a/onis b/onis index 650d8a5..5c2bb2e 100755 --- a/onis +++ b/onis @@ -1,12 +1,12 @@ #!/usr/bin/perl ########################################################################## -# onis 0.7.2 2005-01-21 # +# onis 0.8.0 2005-04-17 # #---=============--------------------------------------------------------# # Language: Perl # # Purpose: Generating statistics # # Input: IRC-Logfiles # # Output: One HTML file # -# Version: 0.7.2 (unstable) # +# Version: 0.8.0 (unstable) # # License: GPL # # Homepage: http://verplant.org/onis/ # # Authors: Florian octo Forster # @@ -37,17 +37,24 @@ use Onis::Config qw/get_config parse_argv read_config/; use File::Basename qw/dirname/; use Fcntl qw/:flock/; -use vars qw/$VERSION/; +use vars qw/$VERSION $REVISION/; -$VERSION = '0.7.2'; +$VERSION = ''; +$REVISION = '$LastChangedRevision$'; -our $FILEINFO; -our $PURGE_LOGS = 0; +if (!$VERSION) +{ + $VERSION = $REVISION; + $VERSION =~ s/^\D*(\d+).*/r$1/; +} + +our $FileInfo; +our $PurgeLogs = 0; -print STDERR $/, __FILE__, ': $Id: onis,v 1.18 2005/01/21 18:59:59 octo Exp $' if ($::DEBUG); +print STDERR $/, __FILE__, ': $Id$' if ($::DEBUG); parse_argv (@ARGV); -read_config (get_config ('config') ? get_config ('config') : 'config'); +read_config (get_config ('config') ? get_config ('config') : 'onis.conf'); read_config (scalar get_config ('theme')) if (get_config ('theme')); my $output = get_config ('output'); @@ -64,6 +71,7 @@ foreach ('Core', get_config ('plugin')) if (!get_config ('input')) { + # TODO: Make a complete (!) lsit.. print STDERR < [logfile logfile ..] @@ -119,23 +127,23 @@ if (get_config ('logtype')) require "Onis/Parser/$logtype.pm"; require Onis::Parser::Persistent; require Onis::Data::Persistent; -import Onis::Parser qw/parse last_date/; -import Onis::Parser::Persistent qw#newfile#; -import Onis::Data::Persistent qw#init#; +import Onis::Parser (qw(parse last_date)); +import Onis::Parser::Persistent (qw(newfile)); +import Onis::Data::Persistent (); -$FILEINFO = init ('$FILEINFO', 'hash'); +$FileInfo = Onis::Data::Persistent->new ('FileInfo', 'inode', qw(mtime)); if (get_config ('purge_logs')) { my $temp = lc (get_config ('purge_logs')); if (($temp eq 'truncate') or ($temp eq 'shorten')) { - $PURGE_LOGS = 1; + $PurgeLogs = 1; } elsif (($temp eq 'delete') or ($temp eq 'remove') or ($temp eq 'del')) { - $PURGE_LOGS = 2; + $PurgeLogs = 2; } } @@ -160,15 +168,18 @@ for (get_config ('input')) } else { + my ($old_mtime) = $FileInfo->get ($inode); + print STDERR $/, __FILE__, ": ``$file'': " if ($::DEBUG & 0x200); - if (defined ($FILEINFO->{$inode}{'mtime'})) + + if (defined ($old_mtime)) { - if ($FILEINFO->{$inode}{'mtime'} == $mtime) + if ($old_mtime == $mtime) { print STDERR "File did not change. Skipping." if ($::DEBUG & 0x200); next; } - elsif ($FILEINFO->{$inode}{'mtime'} < $mtime) + elsif ($old_mtime < $mtime) { print STDERR "File changed. Reading it again." if ($::DEBUG & 0x200); } @@ -181,11 +192,11 @@ for (get_config ('input')) { print STDERR "File appears to be new. Reading it." if ($::DEBUG & 0x200); } - $FILEINFO->{$inode}{'mtime'} = $mtime; + $FileInfo->put ($inode, $mtime); } # truncate - if ($PURGE_LOGS == 1) + if ($PurgeLogs == 1) { unless (open ($logfile, '+< ' . $file)) { @@ -202,7 +213,7 @@ for (get_config ('input')) } } - if ($PURGE_LOGS) + if ($PurgeLogs) { unless (flock ($logfile, LOCK_EX)) { @@ -221,7 +232,7 @@ for (get_config ('input')) } } - newfile ($FILEINFO->{$inode}); + newfile ($FileInfo->{$inode}); while (<$logfile>) { s/\n|\r//g; @@ -254,11 +265,11 @@ for (get_config ('input')) } } - if ($PURGE_LOGS and (($status == 1) + if ($PurgeLogs and (($status == 1) or ($status == 2) or ($status == 3))) { - if (($PURGE_LOGS > 1) + if (($PurgeLogs > 1) #and (($position + 1) >= $size) ) { @@ -272,7 +283,7 @@ for (get_config ('input')) { print STDERR $/, __FILE__, ": Unable to delete empty file ``$file'': $!"; } - delete ($FILEINFO->{$inode}); + delete ($FileInfo->{$inode}); } else {