]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/rsync.pm
add section information
[git.ikiwiki.info.git] / IkiWiki / Plugin / rsync.pm
index 9afbe948728507c5a72fbea480919c6c43ddd15c..8dd983be783d85343f61afa18a1c179d655cb637 100644 (file)
@@ -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 () {
@@ -15,6 +16,7 @@ sub getsetup () {
                plugin => {
                        safe => 0,
                        rebuild => 0,
+                       section => "special-purpose",
                },
                rsync_command => {
                        type => "string",
@@ -25,15 +27,18 @@ 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) {
-                       warn("failed to execute rsync_command: $!");
+                       warn(sprintf(gettext("failed to execute rsync_command: %s"), $!))."\n";
                }
                elsif ($? != 0) {
-                       warn(sprintf("rsync_command exited %d", $? >> 8));
+                       warn(sprintf(gettext("rsync_command exited %d"), $? >> 8))."\n";
                }
        }
 }