diff options
Diffstat (limited to 'notes')
-rw-r--r-- | notes/ikiwiki_setup_mangling.mdwn | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/notes/ikiwiki_setup_mangling.mdwn b/notes/ikiwiki_setup_mangling.mdwn new file mode 100644 index 0000000..cfc174c --- /dev/null +++ b/notes/ikiwiki_setup_mangling.mdwn @@ -0,0 +1,45 @@ +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 - --rebuild --verbose` in order to strip out +the cgi-related functions. + + #!/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)$/, @{$config->{add_plugins}}); + + push(@{$config->{disable_plugins}}, 'recentchanges'); + + $config->{destdir} = '/srv/www/www.tovatest.com'; + $config->{url} = 'http://www.tovacompany.com'; + + + 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"; |