2 package IkiWiki
::Plugin
::transient
;
9 hook
(type
=> "getsetup", id
=> "transient", call
=> \
&getsetup
);
10 hook
(type
=> "checkconfig", id
=> "transient", call
=> \
&checkconfig
);
11 hook
(type
=> "change", id
=> "transient", call
=> \
&change
);
17 # this plugin is safe but only makes sense as a
18 # dependency; similarly, it needs a rebuild but
19 # only if something else does
28 if (defined $config{wikistatedir
}) {
29 $transientdir = $config{wikistatedir
}."/transient";
30 # add_underlay treats relative underlays as relative to the installed
31 # location, not the cwd. That's not what we want here.
32 IkiWiki
::add_literal_underlay
($transientdir);
37 foreach my $file (@_) {
38 # If the corresponding file exists in the transient underlay
39 # and isn't actually being used, we can get rid of it.
40 # Assume that the file that just changed has the same extension
41 # as the obsolete transient version: this'll be true for web
42 # edits, and avoids invoking File::Find.
43 my $casualty = "$transientdir/$file";
44 if (srcfile
($file) ne $casualty && -e
$casualty) {
45 debug
(sprintf(gettext
("removing transient version of %s"), $file));
46 IkiWiki
::prune
($casualty);