diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-09-11 18:29:56 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-09-11 18:29:56 -0400 |
commit | a7545978c76902076b42b774938e6f60b96aa396 (patch) | |
tree | b65ddb200d18e5e420f56ec6e7c1c29816a75759 | |
parent | 5b818c9f2ac9c9a2d953f29194913036ab26c225 (diff) | |
download | ikiwiki-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.
-rw-r--r-- | IkiWiki/Plugin/rsync.pm | 8 | ||||
-rw-r--r-- | IkiWiki/Render.pm | 1 |
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 () { |