=================================================================== RCS file: /cvs/nagios/check_hw_sensors/check_hw_sensors,v retrieving revision 1.35 retrieving revision 1.39 diff -u -r1.35 -r1.39 --- nagios/check_hw_sensors/check_hw_sensors 2009/11/10 23:15:15 1.35 +++ nagios/check_hw_sensors/check_hw_sensors 2009/11/11 18:14:00 1.39 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -# $RedRiver: check_hw_sensors,v 1.34 2009/11/10 23:12:49 andrew Exp $ +# $RedRiver: check_hw_sensors,v 1.38 2009/11/11 18:08:41 andrew Exp $ ######################################################################## # check_hw_sensors *** A nagios check for OpenBSD sysctl hw.sensors # @@ -29,7 +29,13 @@ use POSIX; use Config; -use lib '/usr/local/libexec/nagios'; +my $PREFIX; +BEGIN { + ## no critic 'warnings' + no warnings 'uninitialized'; + $PREFIX = "${PREFIX}" || '/usr/local'; # Magic for OpenBSD ports tree +} +use lib $PREFIX . '/libexec/nagios'; use utils qw($TIMEOUT %ERRORS &support); use Getopt::Long; @@ -69,7 +75,7 @@ } if ($opt_V) { - print_revision( $PROGNAME, '$Revision: 1.35 $ ' ); + print_revision( $PROGNAME, '$Revision: 1.39 $ ' ); exit $ERRORS{'OK'}; } @@ -130,9 +136,8 @@ } $CHECK_SENSOR = $SENSOR; - $CHECKS{$SENSOR}{'warn'} = $WARNING; - $CHECKS{$SENSOR}{'crit'} = $CRITICAL; - + $CHECKS{$SENSOR}{'warn'} = $WARNING if $WARNING; + $CHECKS{$SENSOR}{'crit'} = $CRITICAL if $CRITICAL; } elsif ( defined $FILENAME ) { %CHECKS = read_file($FILENAME); @@ -144,21 +149,22 @@ my $have_results = 0; $state = 'OK'; -foreach my $error ( sort { $ERRORS{$b} <=> $ERRORS{$a} } keys %ERRORS ) { +foreach + my $error ( reverse sort { $ERRORS{$a} <=> $ERRORS{$b} } keys %ERRORS ) +{ if ( exists $STATES{$error} ) { $have_results++; $state = $error if $ERRORS{$state} < $ERRORS{$error}; if ($NAGIOS_OUTPUT) { - print "$error (" . scalar( @{ $STATES{$error} } ) . ")"; + print $error . ' (' . scalar( @{ $STATES{$error} } ) . ')'; if ( $error ne 'OK' ) { - s/\s+/ /gxms; print '
'; - print map {" - $_
"} @{ $STATES{$error} }; + print map { " - $_
" } @{ $STATES{$error} }; } } else { - print "$error (" . scalar( @{ $STATES{$error} } ) . "):\n"; + print $error . ' (' . scalar( @{ $STATES{$error} } ) . "):\n"; foreach ( @{ $STATES{$error} } ) { print " $_\n"; } @@ -324,7 +330,7 @@ $r = check_sensor( $sensor, $C->{ $sensor->{id} } ); $data = $sensor->{id} . '=' . $sensor->{output}; } - elsif ( !$O->{ignore_status} && $sensor->{status} ) { + elsif ( $sensor->{status} && !$O->{IGNORE_STATUS} ) { $r = check_sensor( $sensor, { STATUS => 1 } ); $data = $sensor->{id} . '=' . $sensor->{output}; } @@ -398,14 +404,14 @@ } foreach my $code ( 'warn', 'crit' ) { - if ( defined $check->{ $code . ".low" } - || defined $check->{ $code . ".high" } ) + if ( defined $check->{ $code . '.low' } + || defined $check->{ $code . '.high' } ) { - if (( defined $check->{ $code . ".low" } - && $check->{ $code . ".low" } >= $data + if (( defined $check->{ $code . '.low' } + && $check->{ $code . '.low' } >= $data ) - || ( defined $check->{ $code . ".high" } - && $check->{ $code . ".high" } <= $data ) + || ( defined $check->{ $code . '.high' } + && $check->{ $code . '.high' } <= $data ) ) { $result = $errors{$code}; @@ -418,7 +424,7 @@ my $c = $_; $c =~ s/[^\d\.]//gxms; if ( !length $c ) { - warn "INVALID CHECK (" . $_ . ") for '$code'\n"; + warn "INVALID CHECK ($_) for '$code'\n"; next; } @@ -529,7 +535,7 @@ EOL - print_revision( $PROGNAME, '$Revision: 1.35 $' ); + print_revision( $PROGNAME, '$Revision: 1.39 $' ); print $LICENSE;