X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/460b1a0debf85f7c54c1dd7d8b8e483587041d44..c6ac7409bd95af94257f8bd6e5d5fd2530a4aa63:/IkiWiki/Plugin/rsync.pm diff --git a/IkiWiki/Plugin/rsync.pm b/IkiWiki/Plugin/rsync.pm index 3f049457b..9afbe9487 100644 --- a/IkiWiki/Plugin/rsync.pm +++ b/IkiWiki/Plugin/rsync.pm @@ -7,7 +7,6 @@ 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); } @@ -19,26 +18,23 @@ sub getsetup () { }, rsync_command => { type => "string", - example => "rsync -qa --delete /path/to/destdir/ user\@host:/path/to/docroot/", - description => "unattended command to upload regenerated pages", + 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 () { - 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)); + } } }