Add aggregateinternal mode to ikiwiki-transition.
Usage: 1. Update all pagespecs that use aggregated pages to use internal() 2. ikiwiki-transition aggregateinternal $srcdir $htmlext (where $srcdir and $htmlext are the srcdir and htmlext options in your .setup file) 3. Add aggregateinternal to your .setup file 4. Rebuild the wikimaster
parent
18b3e970ff
commit
50a5ab3c4e
|
@ -113,6 +113,49 @@ sub launchaggregation () { #{{{
|
|||
return 1;
|
||||
} #}}}
|
||||
|
||||
sub migrate_to_internal { #{{{
|
||||
|
||||
if (! lockaggregate()) {
|
||||
error("an aggregation process is already running");
|
||||
return;
|
||||
}
|
||||
|
||||
IkiWiki::lockwiki();
|
||||
loadstate();
|
||||
|
||||
foreach my $data (values %guids) {
|
||||
next unless $data->{page};
|
||||
|
||||
$config{aggregateinternal} = 0;
|
||||
my $oldname = pagefile($data->{page});
|
||||
|
||||
$config{aggregateinternal} = 1;
|
||||
my $newname = pagefile($data->{page});
|
||||
|
||||
print "I: $oldname -> $newname\n";
|
||||
if (-e $newname) {
|
||||
if (-e $oldname) {
|
||||
error("$newname already exists");
|
||||
}
|
||||
else {
|
||||
print STDERR
|
||||
"W: already renamed to $newname?\n";
|
||||
}
|
||||
}
|
||||
elsif (-e $oldname) {
|
||||
rename($oldname, $newname) || error("$!");
|
||||
}
|
||||
else {
|
||||
print "W: $oldname not found\n";
|
||||
}
|
||||
}
|
||||
|
||||
savestate();
|
||||
IkiWiki::unlockwiki;
|
||||
|
||||
unlockaggregate();
|
||||
} #}}}
|
||||
|
||||
sub needsbuild (@) { #{{{
|
||||
my $needsbuild=shift;
|
||||
|
||||
|
|
|
@ -99,12 +99,25 @@ sub hashpassword {
|
|||
}
|
||||
}
|
||||
|
||||
sub aggregateinternal {
|
||||
$config{srcdir} = shift;
|
||||
$config{wikistatedir} = $config{srcdir}."/.ikiwiki";
|
||||
$config{htmlext} = (shift or "html");
|
||||
|
||||
require IkiWiki::Plugin::aggregate;
|
||||
|
||||
IkiWiki::Plugin::aggregate::migrate_to_internal();
|
||||
|
||||
print "... now add aggregateinternal => 1 to your .setup file\n";
|
||||
}
|
||||
|
||||
sub usage {
|
||||
print STDERR "Usage: ikiwiki-transition type ...\n";
|
||||
print STDERR "Currently supported transition subcommands:\n";
|
||||
print STDERR " prefix_directives file\n";
|
||||
print STDERR " indexdb srcdir\n";
|
||||
print STDERR " hashpassword srcdir\n";
|
||||
print STDERR " aggregateinternal srcdir [htmlext]\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
|
@ -120,6 +133,9 @@ elsif ($mode eq 'hashpassword') {
|
|||
elsif ($mode eq 'indexdb') {
|
||||
indexdb(@ARGV);
|
||||
}
|
||||
elsif ($mode eq 'aggregateinternal') {
|
||||
aggregateinternal(@ARGV);
|
||||
}
|
||||
else {
|
||||
usage();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue