# HG changeset patch # User Heiko Schlittermann (JUMPER) # Date 1427785638 -7200 # Node ID 464fb46c0b7db5d3ee3964766582f74c4e1a86c2 # Parent 4846530351e32418068d23a55fb8f3cf4268d015 [debian:nagios-plugin-release_2.8] # --- # this is for package version nagios-plugin-release_2.8 diff -r 4846530351e3 -r 464fb46c0b7d check_release.pl --- a/check_release.pl Wed Jan 28 21:25:36 2015 +0100 +++ b/check_release.pl Tue Mar 31 09:07:18 2015 +0200 @@ -32,7 +32,7 @@ DEPENDENT => 4 ); -sub get_current_release($); +sub get_local_release; sub get_stable_release($$); sub report($$); sub version($$); @@ -42,7 +42,7 @@ my %opt = ( url => "http://www.debian.org/releases/stable/index.html", - search => "

Debian", + search => qr/

Debian\b.*?([\d.]+)/, file => "/etc/debian_version", ok => 0 ); @@ -59,80 +59,66 @@ "V|version" => sub { version($ME, $VERSION); exit $ERRORS{OK}; } ) or pod2usage(-verbose => 1, -exitval => $ERRORS{CRITICAL}); - my $current_release = get_current_release($opt{file}); - my $stable_release = get_stable_release($opt{url}, $opt{search}); - report($current_release, $stable_release); + my ($local_release, $stable_release) = eval { + get_local_release($opt{file}), + get_stable_release($opt{url}, $opt{search}); + }; + if ($@) { + print "RELEASE CRITICAL: $@\n"; + exit $ERRORS{CRITICAL}; + } + report($local_release, $stable_release); } -sub get_current_release($) { - my $file = shift; - my $current_release = undef; +sub get_local_release { - unless (-r $file) { - print -"RELEASE CRITICAL: $file not exists or not read permission is granted\n"; - exit $ERRORS{CRITICAL}; - } + my $local_release = do { + local @ARGV = grep { -r } @_ + or die "@_: $!\n"; + <>; + }; - open(CR, "<$file"); - while () { - chomp; - $current_release = $_; - } - close(CR); - - return $current_release; + chomp $local_release; + return $local_release; } sub get_stable_release($$) { my ($url, $search) = @_; - my ($found, $stable_release) = undef; my $website; - my @website = (); + + $website = get($url) + or die "Failed to get $url\n"; + + $website =~ /$opt{search}/s + or die "an't parse $url\n"; + + return $1; +} + +sub compare_versions { + my ($left, $right) = @_; + my @left = split '.', $left; + my @right = split '.', $right; - $website = get($url); - unless (defined $website) { - print -"RELEASE CRITICAL: failed to get $url\n"; +} + +sub report($$) { + my ($local_release, $stable_release) = @_; + my ($local_major, $stable_major) = map { int } $local_release, $stable_release; + + die "<$local_major | $stable_major>"; + + if ($opt{ok} or $local_release eq $stable_release) { + print "RELEASE OK: $local_release/$stable_release\n"; + exit $ERRORS{OK}; + } + + if ($current_major - $stable_major < -1) { + print "RELEASE CRITICAL: $local_release / $stable_release\n"; exit $ERRORS{CRITICAL}; } - push @website, split("\n", $website); - - foreach (@website) { - unless ($found) { - /$search/ or next; - $found = $_; - next; - } - } - - if ($found =~ /$opt{search}\s+([\d\.]+).*/) { - $stable_release = $1; - } - - return $stable_release; -} - -sub report($$) { - my ($current_release, $stable_release) = @_; - - - if ($opt{ok} or $current_release eq $stable_release) { - print "RELEASE OK: $current_release/$stable_release\n"; - exit $ERRORS{OK}; - } - - $stable_release =~ /^(\d+)/ and my $stable_major = int($1); - $current_release =~ /^(\d+)/ and my $current_major = int($1); - - - if ($current_major - $stable_major < -1) { - print "RELEASE CRITICAL: $current_release / $stable_release\n"; - exit $ERRORS{CRITICAL}; - } - - print "RELEASE WARNING: $current_release / $stable_release\n"; + print "RELEASE WARNING: $local_release / $stable_release\n"; exit $ERRORS{"WARNING"}; } diff -r 4846530351e3 -r 464fb46c0b7d debian/changelog --- a/debian/changelog Wed Jan 28 21:25:36 2015 +0100 +++ b/debian/changelog Tue Mar 31 09:07:18 2015 +0200 @@ -1,3 +1,10 @@ +nagios-plugin-release (2.8) oldstable stable; urgency=medium + + * removed dependency on perl-doc + * changed maintainer + + -- Heiko Schlittermann (HS12-RIPE) Tue, 31 Mar 2015 09:07:10 +0200 + nagios-plugin-release (2.7) oldstable stable; urgency=medium * fixed compression type: diff -r 4846530351e3 -r 464fb46c0b7d debian/control --- a/debian/control Wed Jan 28 21:25:36 2015 +0100 +++ b/debian/control Tue Mar 31 09:07:18 2015 +0200 @@ -1,12 +1,12 @@ Source: nagios-plugin-release Section: net Priority: extra -Maintainer: Christian Arnold +Maintainer: Heiko Schlittermann (HS12-RIPE) Build-Depends: debhelper (>= 7), libwww-perl Standards-Version: 3.9.1 Package: nagios-plugin-release Architecture: all -Depends: ${misc:Depends}, ${perl:Depends}, perl-doc, libwww-perl +Depends: ${misc:Depends}, ${perl:Depends}, libwww-perl Description: nagios plugin to check current debian release number This plugin checks the current debian release number.