]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/rsync.pm
Correctly handle filenames starting with a dash in add/rm/mv.
[git.ikiwiki.info.git] / IkiWiki / Plugin / rsync.pm
index f14989ff835ac929675666ee91cd3a5d68f8261b..1b85ea000120846ca5426e97be3603425e83cb1f 100644 (file)
@@ -7,7 +7,8 @@ use IkiWiki 3.00;
 
 sub import {
        hook(type => "getsetup", id => "rsync", call => \&getsetup);
 
 sub import {
        hook(type => "getsetup", id => "rsync", call => \&getsetup);
-       hook(type => "postrefresh", id => "rsync", call => \&postrefresh);
+       hook(type => "rendered", id => "rsync", call => \&postrefresh);
+       hook(type => "delete", id => "rsync", call => \&postrefresh);
 }
 
 sub getsetup () {
 }
 
 sub getsetup () {
@@ -18,15 +19,18 @@ sub getsetup () {
                },
                rsync_command => {
                        type => "string",
                },
                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,
                },
 }
 
                        description => "command to run to sync updated pages",
                        safe => 0,
                        rebuild => 0,
                },
 }
 
+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: $!");
                system $config{rsync_command};
                if ($? == -1) {
                chdir($config{destdir}) || error("chdir: $!");
                system $config{rsync_command};
                if ($? == -1) {