added manpage and help
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Tue, 30 Dec 2014 00:46:41 +0100
changeset 2 2d11bbd7be1e
parent 1 cff9b7e57f19
child 3 9ce7eb4a39c3
added manpage and help
plugins/check_dns-serial
--- a/plugins/check_dns-serial	Tue Dec 30 00:37:59 2014 +0100
+++ b/plugins/check_dns-serial	Tue Dec 30 00:46:41 2014 +0100
@@ -6,7 +6,6 @@
 use Net::DNS;
 use Pod::Usage;
 
-
 my %resolver;
 sub uniq { my %h; @h{@_} = (); return keys %h; }
 
@@ -34,7 +33,8 @@
     my ($domain) = @_;
     my @ns;
 
-    my $r = $resolver{$nameserver} //= Net::DNS::Resolver->new(nameservers => [$nameserver]);
+    my $r = $resolver{$nameserver} //=
+      Net::DNS::Resolver->new(nameservers => [$nameserver]);
     my $q = $r->query($domain, 'NS') or die $r->errorstring, "\n";
     push @ns, map { $_->nsdname } grep { $_->type eq 'NS' } $q->answer;
 
@@ -46,7 +46,7 @@
     my ($domain) = shift;
 
     my $r = $resolver{$nameserver} //=
-    Net::DNS::Resolver->new(nameservers => [$nameserver]);
+      Net::DNS::Resolver->new(nameservers => [$nameserver]);
     my $q = $r->query($domain, 'SOA') or die $r->errorstring, "\n";
     return (map { $_->serial } grep { $_->type eq 'SOA' } $q->answer)[0];
 }
@@ -67,40 +67,55 @@
     my @their = sort +get_ns($domain);
 
     {
-	local $" = "\0";
-	return 1 if "@our" eq "@their"; 
+        local $" = "\0";
+        return 1 if "@our" eq "@their";
     }
 
     local $" = ', ';
     die "NS differ (our @our) vs (their @their)\n";
-};
+}
 
 sub main {
-    my @argv = @_;
+    my @argv          = @_;
     my $opt_reference = '212.80.235.130';
-    my $opt_progress = -t;
+    my $opt_progress  = -t;
 
-    GetOptionsFromArray(\@argv,
-	'reference=s' => \$opt_reference) 
-    and @argv or pod2usage;
+    GetOptionsFromArray(
+        \@argv,
+## Please see file perltidy.ERR
+## Please see file perltidy.ERR
+        'reference=s' => \$opt_reference,
+        'progress!'   => \$opt_progress,
+        'h|help'      => sub { pod2usage(-verbose => 1, -exit => 0) },
+        'm|man'       => sub {
+            pod2usage(
+                -verbose   => 2,
+                -exit      => 0,
+                -noperldoc => system('perldoc -V 2>/dev/null 1>&2')
+            );
+        }
+      )
+      and @argv
+      or pod2usage;
     my @domains = get_domains(@argv);
 
     my (@OK, %CRITICAL);
     foreach my $domain (@domains) {
-	print STDERR "$domain " if $opt_progress;
-	eval { ns_ok('@212.80.235.130', $domain) };
-	if ($@) { $CRITICAL{$domain} = $@ }
-	else { push @OK, $domain }
-	say STDERR $@ ? 'not ok' : 'ok' if $opt_progress;
+        print STDERR "$domain " if $opt_progress;
+        eval { ns_ok('@212.80.235.130', $domain) };
+        if ($@) { $CRITICAL{$domain} = $@ }
+        else    { push @OK, $domain }
+        say STDERR $@ ? 'not ok' : 'ok' if $opt_progress;
     }
 
-#    use DDP;
-#    p @OK;
-#    p %CRITICAL;
+    #    use DDP;
+    #    p @OK;
+    #    p %CRITICAL;
 
     if (my $n = keys %CRITICAL) {
-	print "CRITICAL: $n of ".@domains." domains\n", map { "$_: $CRITICAL{$_}" } sort keys %CRITICAL;
-	return 2;
+        print "CRITICAL: $n of " . @domains . " domains\n",
+          map { "$_: $CRITICAL{$_}" } sort keys %CRITICAL;
+        return 2;
     }
 
     say 'OK: ' . @OK . ' domains checked';