diff -r 211e08d0d2b8 -r 67e8bd9a87c5 check_exec.pl
--- a/check_exec.pl Wed Dec 22 13:42:49 2010 +0100
+++ b/check_exec.pl Wed Dec 22 15:24:30 2010 +0100
@@ -1,61 +1,71 @@
#!/usr/bin/perl -w
+# Copyright (C) 2010 Christian Arnold
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+# Chrisitan Arnold
+
use strict;
use File::Basename;
+use Pod::Usage;
use Getopt::Long;
use LWP::Simple;
use HTTP::Status;
use File::Path;
use lib "/usr/lib/nagios/plugins";
-use utils qw (%ERRORS &print_revision &support);
+use utils qw (%ERRORS);
$ENV{LANG} = "POSIX";
my $ME = basename $0;
my $VERSION = "0.2";
-my $USAGE = <))[7];
+my $opt = {
+ url => "",
+ path => "/var/tmp/nagios",
+ binary => "/usr/bin/gpg"
+};
MAIN: {
Getopt::Long::Configure('bundling');
GetOptions(
- "u|url=s" => \$opt_url,
- "b|binary=s" => \$opt_binary,
- "p|path=s" => \$opt_path,
- "h|help" => sub { print_help(); exit $ERRORS{OK}; },
- "V|version" => sub { print_revision($ME, $VERSION); exit $ERRORS{OK}; }
+ "u|url=s" => \$opt->{url},
+ "b|binary=s" => \$opt->{binary},
+ "p|path=s" => \$opt->{path},
+ "h|help" => sub { pod2usage(-verbose => 1, -exitval => $ERRORS{OK}) },
+ "m|man" => sub { pod2usage(-verbose => 2, -exitval => $ERRORS{OK}) },
+ "V|version" => sub { version($ME, $VERSION); exit $ERRORS{OK}; }
)
or do {
- print $USAGE;
+ pod2usage(-verbose => 1, -exitval => $ERRORS{CRITICAL});
exit $ERRORS{CRITICAL};
};
- unless ($opt_url) {
- print $USAGE;
+ unless ($opt->{url}) {
+ pod2usage(-verbose => 1, -exitval => $ERRORS{CRITICAL});
exit $ERRORS{CRITICAL};
}
- download($opt_url, $opt_path);
+ download($opt->{url}, $opt->{path});
}
sub execute($) {
@@ -121,9 +131,10 @@
my $file = shift;
my $dir = dirname($file);
my $run_file = fileparse($file, qw/\.[^.]*/);
+ my $home_dir = (getpwuid($>))[7];
- my $vc = qq{$opt_binary --homedir $home_dir/.gnupg --verify};
- my $dc = qq{$opt_binary --homedir $home_dir/.gnupg --batch --yes};
+ my $vc = qq|$opt->{binary} --homedir $home_dir/.gnupg --verify|;
+ my $dc = qq|$opt->{binary} --homedir $home_dir/.gnupg --batch --yes|;
my @r = qx/$vc $file 2>&1/;
if ($?) {
@@ -140,28 +151,83 @@
execute("$dir/$run_file");
}
-sub print_usage() { print $USAGE }
+sub version($$) {
+ my $progname = shift;
+ my $version = shift;
+
+ print <<_VERSION;
+$progname version $version
+Copyright (C) 2010 by Christian Arnold and Schlittermann internet & unix support.
+
+$ME comes with ABSOLUTELY NO WARRANTY. This is free software,
+and you are welcome to redistribute it under certain conditions.
+See the GNU General Public Licence for details.
+_VERSION
+}
+
+=head1 NAME
+
+check_exec - nagios plugin to download/verify/execute a program file
+
+=head1 SYNOPSIS
+
+check_exec -u|--url
+ [-b|--binary path]
+ [-p|--path path]
+
+check_exec [-h|--help]
+
+check_exec [-m|--man]
+
+check_exec [-v|--version]
-sub print_help() {
- print_revision($ME, $VERSION);
- print <|B<--url> url
+
+Download url for generic script.
+
+=item B<-b>|B<--binary> path
+
+Path to gpg binary program (default: /usr/bin/gpg)
+
+=item B<-p>|B<--path> path
+
+Location for store download script (default: /var/tmp/nagios)
+
+=item B<-h>|B<--help>
+
+Print detailed help screen.
+
+=item B<-m>|B<--man>
+
+Print manual page.
+
+=item B<-V>|B<--version>
+
+Print version information.
+
+=back
+
+=head1 DESCRIPTION
This plugin loads a program file via http or https from a
server and verifies its validity based on a gpg key.
-$USAGE
- -u, --url
- download url for generic script
- -b, --binary
- path to gpg (default: /usr/bin/gpg)
- -p, --path
- location for store download script (default: /var/tmp/nagios)
- -h, --help
- print detailed help screen
- -V, --version
- print version information
+=head1 VERSION
+
+This man page is current for version 0.2 of check_exec.
+
+=head1 AUTHOR
+
+Written by Christian Arnold
-EOF
- support();
-}
+=head1 COPYRIGHT
+
+Copyright (C) 2010 by Christian Arnold and Schlittermann internet & unix support.
+This is free software, and you are welcome to redistribute it under certain conditions.
+See the GNU General Public Licence for details.
+
+=cut