diff options
Diffstat (limited to 'tools/sync_website')
| -rwxr-xr-x | tools/sync_website | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tools/sync_website b/tools/sync_website new file mode 100755 index 00000000..8489bc54 --- /dev/null +++ b/tools/sync_website | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | #!/usr/bin/perl | ||
| 2 | use strict; | ||
| 3 | use DBI; | ||
| 4 | #$ENV{PERL5LIB}="plugins-scripts"; # Needed for utils.pm | ||
| 5 | |||
| 6 | unless ($ENV{DRUPAL_PASSWORD}) { | ||
| 7 | die "Must set envvar for DRUPAL_PASSWORD"; | ||
| 8 | } | ||
| 9 | |||
| 10 | my $pid = open(F, "-|", qw(ssh -n -N -L 25555:127.0.0.1:3306 nagiosplugins.org)); | ||
| 11 | |||
| 12 | # Allow time for ssh tunnel to be created | ||
| 13 | sleep 2; | ||
| 14 | |||
| 15 | # To stop the death of ssh tunnel being defunct | ||
| 16 | $SIG{CHLD} = 'IGNORE'; | ||
| 17 | |||
| 18 | END { kill 'INT', $pid if $pid }; | ||
| 19 | |||
| 20 | my $dbh = DBI->connect("DBI:mysql:database=drupal;host=127.0.0.1;port=25555", "drupal", $ENV{DRUPAL_PASSWORD}); | ||
| 21 | |||
| 22 | my @plugin_paths; | ||
| 23 | push @plugin_paths, (grep { -x $_ && -f $_ } (<plugins-root/*>, <plugins/*>) ); | ||
| 24 | |||
| 25 | foreach my $plugin_path (@plugin_paths) { | ||
| 26 | my $plugin = $plugin_path; | ||
| 27 | $plugin =~ s%.*/%%; | ||
| 28 | my $help_option = "--help"; | ||
| 29 | $help_option = "-h" if ($plugin eq "check_icmp"); | ||
| 30 | my $help = `$plugin_path $help_option` || die "Cannot run $plugin -h"; | ||
| 31 | $help =~ s/</</g; | ||
| 32 | $help =~ s/>/>/g; | ||
| 33 | |||
| 34 | my $rows = $dbh->do("UPDATE node SET created=UNIX_TIMESTAMP(NOW()) WHERE title='$plugin'"); | ||
| 35 | unless ($rows == 1) { | ||
| 36 | die "Cannot find $plugin in drupal to update - create book page first"; | ||
| 37 | } | ||
| 38 | |||
| 39 | $dbh->do("UPDATE node_revisions SET timestamp=UNIX_TIMESTAMP(NOW()), log='Updated by update_online_manpage', teaser='$plugin --help', body=? WHERE title='$plugin'", | ||
| 40 | {}, | ||
| 41 | "<pre>".$help."</pre>"); | ||
| 42 | } | ||
| 43 | |||
| 44 | print "Finished\n"; | ||
