aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/rsync.pm8
-rw-r--r--IkiWiki/Render.pm1
2 files changed, 6 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/rsync.pm b/IkiWiki/Plugin/rsync.pm
index f14989ff8..45bff19bd 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,8 +26,11 @@ 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) {
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 5953b3fee..246c2260d 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -554,7 +554,6 @@ sub refresh () {
if (%rendered) {
run_hooks(change => sub { shift->(keys %rendered) });
}
- run_hooks(postrefresh => sub { shift->() });
}
sub commandline_render () {