diff options
author | Joey Hess <joey@kitenet.net> | 2011-02-09 13:50:03 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-02-09 13:50:03 -0400 |
commit | 3d7147992ab24d953c87b91f75851ca45895073c (patch) | |
tree | 54b8ee0d4760794d5e24d1d9e8d240a4abbf8d0c /IkiWiki | |
parent | db9f2b1b2b97fd92b09f170c3b567ec59030bf0a (diff) | |
parent | d851ae76f66e62896bb875f57588f4265ea33094 (diff) |
Merge remote branch 'smcv/ready/transient-aggregate'
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/aggregate.pm | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index 59185e97f..7d4565342 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -162,10 +162,14 @@ sub migrate_to_internal { $config{aggregateinternal} = 0; my $oldname = "$config{srcdir}/".htmlfn($data->{page}); + if (! -e $oldname) { + $oldname = $IkiWiki::Plugin::transient::transientdir."/".htmlfn($data->{page}); + } + my $oldoutput = $config{destdir}."/".IkiWiki::htmlpage($data->{page}); $config{aggregateinternal} = 1; - my $newname = "$config{srcdir}/".htmlfn($data->{page}); + my $newname = $IkiWiki::Plugin::transient::transientdir."/".htmlfn($data->{page}); debug "moving $oldname -> $newname"; if (-e $newname) { @@ -385,13 +389,16 @@ sub garbage_collect () { foreach my $guid (values %guids) { # any guid whose feed is gone should be removed if (! exists $feeds{$guid->{feed}}) { - unlink "$config{srcdir}/".htmlfn($guid->{page}) - if exists $guid->{page}; + if (exists $guid->{page}) { + unlink "$config{srcdir}/".htmlfn($guid->{page}); + unlink $IkiWiki::Plugin::transient::transientdir."/".htmlfn($guid->{page}); + } delete $guids{$guid->{guid}}; } # handle expired guids elsif ($guid->{expired} && exists $guid->{page}) { unlink "$config{srcdir}/".htmlfn($guid->{page}); + unlink $IkiWiki::Plugin::transient::transientdir."/".htmlfn($guid->{page}); delete $guid->{page}; delete $guid->{md5}; } @@ -611,6 +618,7 @@ sub add_page (@) { } my $c=""; while (exists $IkiWiki::pagecase{lc $page.$c} || + -e $IkiWiki::Plugin::transient::transientdir."/".htmlfn($page.$c) || -e "$config{srcdir}/".htmlfn($page.$c)) { $c++ } @@ -622,6 +630,8 @@ sub add_page (@) { $c=""; $page=$feed->{dir}."/item"; while (exists $IkiWiki::pagecase{lc $page.$c} || + -e $IkiWiki::Plugin::transient::transientdir."/".htmlfn($page.$c) || + -e "$config{srcdir}/".htmlfn($page.$c)) { $c++ } @@ -664,13 +674,14 @@ sub add_page (@) { if (ref $feed->{tags}) { $template->param(tags => [map { tag => $_ }, @{$feed->{tags}}]); } - writefile(htmlfn($guid->{page}), $config{srcdir}, - $template->output); + writefile(htmlfn($guid->{page}), + $IkiWiki::Plugin::transient::transientdir, $template->output); if (defined $mtime && $mtime <= time) { # Set the mtime, this lets the build process get the right # creation time on record for the new page. - utime $mtime, $mtime, "$config{srcdir}/".htmlfn($guid->{page}); + utime $mtime, $mtime, + $IkiWiki::Plugin::transient::transientdir."/".htmlfn($guid->{page}); # Store it in pagectime for expiry code to use also. $IkiWiki::pagectime{$guid->{page}}=$mtime unless exists $IkiWiki::pagectime{$guid->{page}}; |