Fix aggregateinternal migration so it skips expired entries, and deletes output
parent
d3008b626e
commit
b29d11b3c6
|
@ -132,9 +132,11 @@ sub migrate_to_internal { #{{{
|
|||
|
||||
foreach my $data (values %guids) {
|
||||
next unless $data->{page};
|
||||
next if $data->{expired};
|
||||
|
||||
$config{aggregateinternal} = 0;
|
||||
my $oldname = pagefile($data->{page});
|
||||
my $oldoutput = $config{destdir}."/".IkiWiki::htmlpage($data->{page});
|
||||
|
||||
$config{aggregateinternal} = 1;
|
||||
my $newname = pagefile($data->{page});
|
||||
|
@ -154,6 +156,10 @@ sub migrate_to_internal { #{{{
|
|||
else {
|
||||
debug("$oldname not found");
|
||||
}
|
||||
if (-e $oldoutput) {
|
||||
debug("removing output file $oldoutput");
|
||||
unlink($oldoutput) || error ("$!");
|
||||
}
|
||||
}
|
||||
|
||||
savestate();
|
||||
|
|
|
@ -28,7 +28,7 @@ treat these as preprocessor directives and convert them.
|
|||
# aggregateinternal
|
||||
|
||||
The `aggregateinternal` mode moves pages aggregated by the aggregate plugin
|
||||
so that the `aggregateinternal` option can be endabled
|
||||
so that the `aggregateinternal` option can be enabled.
|
||||
|
||||
# indexdb
|
||||
|
||||
|
|
|
@ -100,8 +100,8 @@ you should follow this process:
|
|||
in those PageSpecs. For example, if the PageSpec was `foo/*`, it should
|
||||
be changed to `internal(foo/*)`. This has to be done because internal
|
||||
pages are not matched by regular globs.
|
||||
2. Use [[ikiwiki-transition]] to move all existing aggregated `.html`
|
||||
files. The command to run is `ikiwiki-transition aggregateinternal $srcdir`,
|
||||
or if you have changed the `htmlext` option to something other than "html",
|
||||
`ikiwiki-transition aggregateinternal $srcdir $htmlext`
|
||||
2. Use [[ikiwiki-transition]] to rename all existing aggregated `.html`
|
||||
files in the input directory, and delete the corresponding files from
|
||||
the output directory. The command to run is
|
||||
`ikiwiki-transition aggregateinternal $setupfile`
|
||||
3. Turn on `aggregateinternal` in the setup file and rebuild the wiki.
|
||||
|
|
|
@ -53,7 +53,7 @@ change their pagespecs to use `internal()`.
|
|||
|
||||
> I've patched ikiwiki-transition to have an aggregateinternal mode.
|
||||
> See my aggregateinternal branch, again.
|
||||
> "ikiwiki-transition aggregateinternal $srcdir $htmlext" moves the pages around,
|
||||
> "ikiwiki-transition aggregateinternal $setupfile" moves the pages around,
|
||||
> although it doesn't update the pagespecs (I wouldn't know how...) --[[smcv]]
|
||||
|
||||
[[patch]]
|
||||
|
|
|
@ -100,12 +100,12 @@ sub hashpassword {
|
|||
}
|
||||
|
||||
sub aggregateinternal {
|
||||
$config{srcdir} = shift;
|
||||
$config{wikistatedir} = $config{srcdir}."/.ikiwiki";
|
||||
$config{htmlext} = (shift or "html");
|
||||
|
||||
require IkiWiki::Setup;
|
||||
require IkiWiki::Plugin::aggregate;
|
||||
|
||||
%config = (IkiWiki::defaultconfig(), IkiWiki::Setup::load(shift));
|
||||
IkiWiki::checkconfig();
|
||||
|
||||
IkiWiki::Plugin::aggregate::migrate_to_internal();
|
||||
|
||||
print "... now add aggregateinternal => 1 to your .setup file\n";
|
||||
|
@ -117,7 +117,7 @@ sub usage {
|
|||
print STDERR " prefix_directives file\n";
|
||||
print STDERR " indexdb srcdir\n";
|
||||
print STDERR " hashpassword srcdir\n";
|
||||
print STDERR " aggregateinternal srcdir [htmlext]\n";
|
||||
print STDERR " aggregateinternal setupfile\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue