]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/rsync.pm
Merge commit 'schmonz/master'
[ikiwiki.git] / IkiWiki / Plugin / rsync.pm
index 6304695288809834c68b55955acaec516bf4b672..9afbe948728507c5a72fbea480919c6c43ddd15c 100644 (file)
@@ -2,13 +2,11 @@
 package IkiWiki::Plugin::rsync;
 
 use warnings;
-no warnings 'redefine';
 use strict;
 use IkiWiki 3.00;
 
 sub import {
        hook(type => "getsetup", id => "rsync", call => \&getsetup);
-       hook(type => "checkconfig", id => "rsync", call => \&checkconfig);
        hook(type => "postrefresh", id => "rsync", call => \&postrefresh);
 }
 
@@ -20,27 +18,23 @@ sub getsetup () {
                },
                rsync_command => {
                        type => "string",
-                       example => "rsync -qa --delete /path/to/destdir/ user\@host:/path/to/docroot/",
-                       description => "command to upload regenerated pages to another host",
+                       example => "rsync -qa --delete . user\@host:/path/to/docroot/",
+                       description => "command to run to sync updated pages",
                        safe => 0,
                        rebuild => 0,
                },
 }
 
-sub checkconfig {
-       if (! exists $config{rsync_command} ||
-           ! defined $config{rsync_command}) {
-               error("Must specify rsync_command");
-       }
-}
-
 sub postrefresh () {
-       debug "in postrefresh hook, gonna run rsync";
-       system $config{rsync_command};
-       if ($? == -1) {
-               error("failed to execute rsync_command: $!");
-       } elsif ($? != 0) {
-               error(sprintf("rsync_command exited %d", $? >> 8));
+       if (defined $config{rsync_command}) {
+               chdir($config{destdir}) || error("chdir: $!");
+               system $config{rsync_command};
+               if ($? == -1) {
+                       warn("failed to execute rsync_command: $!");
+               }
+               elsif ($? != 0) {
+                       warn(sprintf("rsync_command exited %d", $? >> 8));
+               }
        }
 }