aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/rsync.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-09-11 18:29:56 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-09-11 18:29:56 -0400
commita7545978c76902076b42b774938e6f60b96aa396 (patch)
treeb65ddb200d18e5e420f56ec6e7c1c29816a75759 /IkiWiki/Plugin/rsync.pm
parent5b818c9f2ac9c9a2d953f29194913036ab26c225 (diff)
downloadikiwiki-a7545978c76902076b42b774938e6f60b96aa396.tar
ikiwiki-a7545978c76902076b42b774938e6f60b96aa396.tar.gz
got rid of the postrefresh hook after all
Instead, use the change and delete hooks, and launch rsync if either hook is called.
Diffstat (limited to 'IkiWiki/Plugin/rsync.pm')
-rw-r--r--IkiWiki/Plugin/rsync.pm8
1 files changed, 6 insertions, 2 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) {