From 116ea53ddf8f93a4bea4cddda077232fc36a70c9 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Wed, 5 Apr 2006 01:14:38 +0000 Subject: [PATCH] * modifications to logview to work in pure perl --- logview | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/logview b/logview index d88e6dc..7db1f86 100755 --- a/logview +++ b/logview @@ -2,18 +2,26 @@ # Log viewer program. Pass it parameters of the logs to view, or it will # automatically view some. +use File::Find; +use File::stat; + $|=1; -$logdir='/var/log'; +my $logdir='/var/log'; @logfiles=@ARGV; # If I am root, look at all logs, otherwise only those that are # world-readable. -my $perm=''; -$perm='-perm +6' if $? != 0; if (! @logfiles) { - @logfiles=split /\n/, `find $logdir -type f -regex '.*.log' ! -name faillog ! -name lastlog $perm`; - push @logfiles, "$logdir/mail.err", "$logdir/mail.warn"; + find(sub {my $fn = $_; + my $stat = stat($File::Find::name); + next if not defined $stat; + if (($fn =~ /\.log$/ or $fn =~ /^mail\.(?:err|warn)$/) and ($stat->mode & 0006 or $> == 0)) { + push @logfiles,$File::Find::name; + } + }, + $logdir + ); } if (-e $ENV{HOME}."/.xsession-errors") { -- 2.39.2