| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/usr/bin/perl
- use strict;
- use DBI;
- #$ENV{PERL5LIB}="plugins-scripts"; # Needed for utils.pm
- unless ($ENV{DRUPAL_PASSWORD}) {
- die "Must set envvar for DRUPAL_PASSWORD";
- }
- my $pid = open(F, "-|", qw(ssh -n -N -L 25555:127.0.0.1:3306 nagiosplugins.org));
- # Allow time for ssh tunnel to be created
- sleep 2;
- # To stop the death of ssh tunnel being defunct
- $SIG{CHLD} = 'IGNORE';
- END { kill 'INT', $pid if $pid };
- my $dbh = DBI->connect("DBI:mysql:database=drupal;host=127.0.0.1;port=25555", "drupal", $ENV{DRUPAL_PASSWORD});
- my @plugin_paths;
- push @plugin_paths, (grep { -x $_ && -f $_ } (<plugins-root/*>, <plugins/*>) );
- foreach my $plugin_path (@plugin_paths) {
- my $plugin = $plugin_path;
- $plugin =~ s%.*/%%;
- my $help_option = "--help";
- $help_option = "-h" if ($plugin eq "check_icmp");
- my $help = `$plugin_path $help_option` || die "Cannot run $plugin -h";
- $help =~ s/</</g;
- $help =~ s/>/>/g;
- my $rows = $dbh->do("UPDATE node SET created=UNIX_TIMESTAMP(NOW()) WHERE title='$plugin'");
- unless ($rows == 1) {
- die "Cannot find $plugin in drupal to update - create book page first";
- }
- $dbh->do("UPDATE node_revisions SET timestamp=UNIX_TIMESTAMP(NOW()), log='Updated by update_online_manpage', teaser='$plugin --help', body=? WHERE title='$plugin'",
- {},
- "<pre>".$help."</pre>");
- }
- print "Finished\n";
|