]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/transient.pm
Let tests determine whether feeds get made.
[git.ikiwiki.info.git] / IkiWiki / Plugin / transient.pm
index c482b8552f78efbe218b71de14bf21cf97a6cd2c..d4eb005ea2485374410396b5323c3db0c6e6b191 100644 (file)
@@ -8,7 +8,7 @@ use IkiWiki 3.00;
 sub import {
        hook(type => "getsetup", id => "transient",  call => \&getsetup);
        hook(type => "checkconfig", id => "transient", call => \&checkconfig);
-       hook(type => "change", id => "transient", call => \&change);
+       hook(type => "rendered", id => "transient", call => \&rendered);
 }
 
 sub getsetup () {
@@ -25,13 +25,15 @@ sub getsetup () {
 our $transientdir;
 
 sub checkconfig () {
-       eval q{use Cwd 'abs_path'};
-       error($@) if $@;
-       $transientdir = abs_path($config{wikistatedir})."/transient";
-       add_underlay($transientdir);
+       if (defined $config{wikistatedir}) {
+               $transientdir = $config{wikistatedir}."/transient";
+               # add_underlay treats relative underlays as relative to the installed
+               # location, not the cwd. That's not what we want here.
+               IkiWiki::add_literal_underlay($transientdir);
+       }
 }
 
-sub change (@) {
+sub rendered (@) {
        foreach my $file (@_) {
                # If the corresponding file exists in the transient underlay
                # and isn't actually being used, we can get rid of it.
@@ -41,7 +43,7 @@ sub change (@) {
                my $casualty = "$transientdir/$file";
                if (srcfile($file) ne $casualty && -e $casualty) {
                        debug(sprintf(gettext("removing transient version of %s"), $file));
-                       IkiWiki::prune($casualty);
+                       IkiWiki::prune($casualty, $transientdir);
                }
        }
 }