use strict;
use warnings;
# Create some constants
my $logfile = "log.txt";
my $error = "DOWN";
my $warn = "PROBLEM";
my ($GREEN, $YELLOW, $RED) = (0, 1, 2);
my $greenbutton = "\";
my $yellowbutton = "\";
my $redbutton = "\";
my @buttons = ($greenbutton, $yellowbutton, $redbutton);
open LOG, "<", $logfile or die "Cannot open $logfile for read :$!";
# If there aren't any log entries, it is probably green.
my $severity = $GREEN;
# Read each line and record the highest severity
while ( ) {
# If it's red, we might as well stop looking as it's
# not going to get any better
if ( $_ =~ /$error/i ) {
$severity = $RED;
last;
}
# If it's a warning, move up to yellow
elsif ( $_ =~ /$warn/i ) {
# next if $severity > $YELLOW; # needed if no last above
$severity = $YELLOW;
}
# It's only green if it was already green.
else {
next if $severity > $GREEN;
$severity = $GREEN;
}
}
close LOG;
# Print out our button
print "\n\n";
print $buttons[$severity], "\n";