#!/usr/bin/perl -w
#chklog.pl
use strict;

my $logfile = "/var/log/boot.msg";
my $errors = 0;
my $line = 0;

sub check_arg{
	if (scalar(@ARGV) > 2){
		print "Too many arguments. Usage: chklog [-f filename]\n";
		die;
	}
	elsif(scalar(@ARGV) == 1){
		print "Not enough arguments. Usage chklog [-f filename]\n";
		die;
	}
	elsif(scalar(@ARGV) == 2){
		if($ARGV[0] eq "-f"){
			return 1;
		}
		else{
			print "Wrong parameter: $ARGV[1].  Usage: chklog [-f filename]\n";
			die;
		}
	}
	else{
		return 0;
	}
}

if(&check_arg){
	$logfile = $ARGV[1];
}

open LOGFILE, $logfile
	or die "Cannot open bootlog: $!";

while (<LOGFILE>){
	$line += 1;
	if (/\bfailed$/){
		print "Error in line ", $line, ": $` $&\n";
		$errors += 1;
	}
}

unless ($errors == 0){
	print $errors," errors found!\n";
}
else{
	print "No errors found!\n";
}
		
