got rid of the postrefresh hook after all

Instead, use the change and delete hooks, and launch rsync if either hook
is called.
master
Joey Hess 2009-09-11 18:29:56 -04:00
parent 5b818c9f2a
commit a7545978c7
2 changed files with 6 additions and 3 deletions

View File

@ -7,7 +7,8 @@ use IkiWiki 3.00;
sub import { sub import {
hook(type => "getsetup", id => "rsync", call => \&getsetup); 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 () { sub getsetup () {
@ -25,8 +26,11 @@ sub getsetup () {
}, },
} }
my $ran=0;
sub postrefresh () { sub postrefresh () {
if (defined $config{rsync_command}) { if (defined $config{rsync_command} && ! $ran) {
$ran=1;
chdir($config{destdir}) || error("chdir: $!"); chdir($config{destdir}) || error("chdir: $!");
system $config{rsync_command}; system $config{rsync_command};
if ($? == -1) { if ($? == -1) {

View File

@ -554,7 +554,6 @@ sub refresh () {
if (%rendered) { if (%rendered) {
run_hooks(change => sub { shift->(keys %rendered) }); run_hooks(change => sub { shift->(keys %rendered) });
} }
run_hooks(postrefresh => sub { shift->() });
} }
sub commandline_render () { sub commandline_render () {