X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c6ac7409bd95af94257f8bd6e5d5fd2530a4aa63..45fb0371db05027ee0d822264f81a77c02970586:/IkiWiki/Plugin/rsync.pm

diff --git a/IkiWiki/Plugin/rsync.pm b/IkiWiki/Plugin/rsync.pm
index 9afbe9487..e38801e4a 100644
--- a/IkiWiki/Plugin/rsync.pm
+++ b/IkiWiki/Plugin/rsync.pm
@@ -7,7 +7,8 @@ use IkiWiki 3.00;
 
 sub import {
 	hook(type => "getsetup", id => "rsync", call => \&getsetup);
-	hook(type => "postrefresh", id => "rsync", call => \&postrefresh);
+	hook(type => "change", id => "rsync", call => \&postrefresh);
+	hook(type => "delete", id => "rsync", call => \&postrefresh);
 }
 
 sub getsetup () {
@@ -25,15 +26,18 @@ sub getsetup () {
 		},
 }
 
+my $ran=0;
+
 sub postrefresh () {
-	if (defined $config{rsync_command}) {
+	if (defined $config{rsync_command} && ! $ran) {
+		$ran=1;
 		chdir($config{destdir}) || error("chdir: $!");
 		system $config{rsync_command};
 		if ($? == -1) {
-			warn("failed to execute rsync_command: $!");
+			warn(sprintf(gettext("failed to execute rsync_command: %s"), $!))."\n";
 		}
 		elsif ($? != 0) {
-			warn(sprintf("rsync_command exited %d", $? >> 8));
+			warn(sprintf(gettext("rsync_command exited %d"), $? >> 8))."\n";
 		}
 	}
 }