=================================================================== RCS file: /cvs/nagios/check_bioctl/check_bioctl,v retrieving revision 1.20 retrieving revision 1.23 diff -u -r1.20 -r1.23 --- nagios/check_bioctl/check_bioctl 2014/06/27 19:59:56 1.20 +++ nagios/check_bioctl/check_bioctl 2017/02/08 19:00:15 1.23 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -# $AFresh1: check_bioctl,v 1.19 2011/12/27 02:23:57 andrew Exp $ +# $AFresh1: check_bioctl,v 1.22 2017/02/08 17:34:23 andrew Exp $ ######################################################################## # check_bioctl *** A nagios check for OpenBSD bioctl # @@ -30,7 +30,7 @@ my $PROGNAME = 'check_bioctl'; my $BIOCTL = '/sbin/bioctl'; -my $SUDO = '/usr/bin/sudo'; +my @DOAS = ( '/usr/bin/doas', '-n' ); use POSIX; my $PREFIX; @@ -120,23 +120,28 @@ } exit $ERRORS{$state}; +sub fail { + my ($message) = @_; + print $message; + exit $ERRORS{'UNKNOWN'}; +} + sub read_bioctl { my ($devices) = @_; my %volumes; foreach my $d ( @{$devices} ) { - open my $bioctl, q{-|}, $SUDO, $BIOCTL, $d - or die "Couldn't open bioctl: $!\n"; + open my $bioctl, q{-|}, @DOAS, $BIOCTL, $d + or fail("Couldn't open bioctl: $!\n"); LINE: while ( my $line = <$bioctl> ) { my ( $i, $item ) = parse_bioctl_line($line); next LINE if !defined $i; $volumes{$d}{$i} = $item; } - ## no critic 'die' close $bioctl - or die $! + or fail( $! ? "Error closing bioctl pipe: $!\n" - : "Exit status $? from bioctl \n"; + : "Exit status $? from bioctl\n" ); } foreach my $d ( keys %volumes ) { @@ -221,7 +226,7 @@ } sub print_revision { - my $rev = '$Revision: 1.20 $'; + my $rev = '$Revision: 1.23 $'; $rev =~ s/^\D+([\d\.]+)\D+$/v$1/xms; say "$PROGNAME $rev";