Backed out changeset 464fb46c0b7d
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Tue, 31 Mar 2015 09:11:19 +0200
changeset 21 6b3eca8f7c0a
parent 20 464fb46c0b7d
child 22 18b866efccfe
Backed out changeset 464fb46c0b7d
check_release.pl
debian/changelog
debian/control
--- a/check_release.pl	Tue Mar 31 09:07:18 2015 +0200
+++ b/check_release.pl	Tue Mar 31 09:11:19 2015 +0200
@@ -32,7 +32,7 @@
     DEPENDENT => 4
 );
 
-sub get_local_release;
+sub get_current_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 => qr/<p>Debian\b.*?([\d.]+)/,
+    search => "<p>Debian",
     file   => "/etc/debian_version",
 	ok     => 0
 );
@@ -59,66 +59,80 @@
         "V|version" => sub { version($ME, $VERSION); exit $ERRORS{OK}; }
     ) or pod2usage(-verbose => 1, -exitval => $ERRORS{CRITICAL});
 
-    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);
+    my $current_release = get_current_release($opt{file});
+    my $stable_release = get_stable_release($opt{url}, $opt{search});
+    report($current_release, $stable_release);
 }
 
-sub get_local_release {
+sub get_current_release($) {
+    my $file            = shift;
+    my $current_release = undef;
 
-    my $local_release = do {
-	local @ARGV = grep { -r } @_
-	    or die "@_: $!\n";
-	<>;
-    };
+    unless (-r $file) {
+        print
+"RELEASE CRITICAL: $file not exists or not read permission is granted\n";
+        exit $ERRORS{CRITICAL};
+    }
 
-    chomp $local_release;
-    return $local_release;
+    open(CR, "<$file");
+    while (<CR>) {
+        chomp;
+        $current_release = $_;
+    }
+    close(CR);
+
+    return $current_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 = get($url);
+    unless (defined $website) {
+        print
+"RELEASE CRITICAL: failed to get $url\n";
+        exit $ERRORS{CRITICAL};
+    }
 
-    $website =~ /$opt{search}/s
-	or die  "an't parse $url\n";
+    push @website, split("\n", $website);
 
-    return $1;
-}
+    foreach (@website) {
+        unless ($found) {
+            /$search/ or next;
+            $found = $_;
+            next;
+        }
+    }
 
-sub compare_versions {
-    my ($left, $right) = @_;
-    my @left = split '.', $left;
-    my @right = split '.', $right;
+    if ($found =~ /$opt{search}\s+([\d\.]+).*/) {
+        $stable_release = $1;
+    }
 
+    return $stable_release;
 }
 
 sub report($$) {
-    my ($local_release, $stable_release) = @_;
-    my ($local_major, $stable_major) = map { int } $local_release, $stable_release;
+    my ($current_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";
+    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: $local_release / $stable_release\n";
+        print "RELEASE CRITICAL: $current_release / $stable_release\n";
         exit $ERRORS{CRITICAL};
     }
 
-        print "RELEASE WARNING: $local_release / $stable_release\n";
+        print "RELEASE WARNING: $current_release / $stable_release\n";
         exit $ERRORS{"WARNING"};
 
 }
--- a/debian/changelog	Tue Mar 31 09:07:18 2015 +0200
+++ b/debian/changelog	Tue Mar 31 09:11:19 2015 +0200
@@ -1,10 +1,3 @@
-nagios-plugin-release (2.8) oldstable stable; urgency=medium
-
-  * removed dependency on perl-doc 
-  * changed maintainer 
-
- -- Heiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>  Tue, 31 Mar 2015 09:07:10 +0200
-
 nagios-plugin-release (2.7) oldstable stable; urgency=medium
 
   * fixed compression type:
--- a/debian/control	Tue Mar 31 09:07:18 2015 +0200
+++ b/debian/control	Tue Mar 31 09:11:19 2015 +0200
@@ -1,12 +1,12 @@
 Source: nagios-plugin-release
 Section: net
 Priority: extra
-Maintainer: Heiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
+Maintainer: Christian Arnold <arnold@schlittermann.de>
 Build-Depends: debhelper (>= 7), libwww-perl
 Standards-Version: 3.9.1
 
 Package: nagios-plugin-release
 Architecture: all
-Depends: ${misc:Depends}, ${perl:Depends}, libwww-perl
+Depends: ${misc:Depends}, ${perl:Depends}, perl-doc, libwww-perl
 Description: nagios plugin to check current debian release number
  This plugin checks the current debian release number.