This is an example of how to take an Ikiwiki setup file and mangle it
programmatically. In my case, I'm running it on the fly for use with
| sudo -u ikiwiki ikiwiki --setup - --refresh --verbose
in order to strip out
the cgi-related functions. In the future, I think it would be better to have dev and live on different git branches and have one Ikiwiki setup for each.
#!/usr/bin/perl
use strict;
use warnings;
package IkiWiki::Setup::Standard;
$INC{"IkiWiki/Setup/Standard.pm"} = "/fake/path";
use Data::Dumper qw( );
sub import {
my ( $class, $config ) = @_;
# foreach my $key ( grep { /^[^aeiou]/i } keys %{$config} ) {
# delete $config->{$key};
# };
delete $config->{cgiurl};
delete $config->{diffurl};
delete $config->{historyurl};
delete $config->{wrappers};
# delete cgi-relevant plugins
@{$config->{add_plugins}} = grep(!/^(wmd|httpauth|attachment|rename|remove|search)$/, @{$config->{add_plugins}});
push(@{$config->{disable_plugins}}, 'recentchanges');
$config->{destdir} = '/srv/www/www.tovatest.com';
$config->{url} = 'http://www.tovacompany.com';
$config->{wikistatedir} = '/srv/ikiwiki/tovawiki/.ikiwiki-live';
my $newconfig = Data::Dumper->new( [ $config ] );
$newconfig->Terse( 1 );
print "#!/usr/bin/perl\n\nuse IkiWiki::Setup::Standard " . $newconfig->Dump( ) . ";\n";
};
do "/srv/ikiwiki/tovawiki.setup";