X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=logview;h=7db1f862a4b2018da21248262211a10ce7a55806;hb=1886c7247cb16ed68a78cd5550b152689a465999;hp=d88e6dc2ab88d1b9cbc51e697e7356ec269f4d3d;hpb=7b26c9447e6e6b7ef084d85e53bbfbd5bca141f9;p=bin.git 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") {