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";