X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/5b818c9f2ac9c9a2d953f29194913036ab26c225..d3d3bbbb17be3b2004e730e2a5d394e23cdff116:/IkiWiki/Plugin/rsync.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/rsync.pm b/IkiWiki/Plugin/rsync.pm index f14989ff8..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 () { @@ -18,15 +19,18 @@ sub getsetup () { }, rsync_command => { type => "string", - example => "rsync -qa --delete . user\@host:/path/to/docroot/ --exclude ikiwiki.cgi", + example => "rsync -qa --delete . user\@host:/path/to/docroot/", description => "command to run to sync updated pages", safe => 0, rebuild => 0, }, } +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) {