X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/2d9e97c283cb7b1ecdd524e60bddec17ee638835..4fe1538b4df838f73382ed64648aa7c12c7ef50a:/IkiWiki/Plugin/rsync.pm diff --git a/IkiWiki/Plugin/rsync.pm b/IkiWiki/Plugin/rsync.pm index 7c3fc127c..e38801e4a 100644 --- a/IkiWiki/Plugin/rsync.pm +++ b/IkiWiki/Plugin/rsync.pm @@ -7,8 +7,8 @@ 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); + hook(type => "change", id => "rsync", call => \&postrefresh); + hook(type => "delete", id => "rsync", call => \&postrefresh); } sub getsetup () { @@ -26,20 +26,19 @@ sub getsetup () { }, } -sub checkconfig { - if (! exists $config{rsync_command} || - ! defined $config{rsync_command}) { - error("Must specify rsync_command"); - } -} +my $ran=0; sub postrefresh () { - chdir($config{destdir}) || error("chdir: $!"); - 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} && ! $ran) { + $ran=1; + chdir($config{destdir}) || error("chdir: $!"); + system $config{rsync_command}; + if ($? == -1) { + warn(sprintf(gettext("failed to execute rsync_command: %s"), $!))."\n"; + } + elsif ($? != 0) { + warn(sprintf(gettext("rsync_command exited %d"), $? >> 8))."\n"; + } } }