X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/cebbb6f482492ba776a1ca542e81a74fb74fbfce..38618838c9f2700b3971c436ec9bee98b91a21e5:/IkiWiki.pm diff --git a/IkiWiki.pm b/IkiWiki.pm index edbec77d6..c7c5aaf97 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -94,57 +94,38 @@ sub getsetup () { #{{{ safe => 0, # don't allow overriding rebuild => 0, }, - historyurl => { - type => "string", - # TODO should be set per-rcs to allow different - # examples and descriptions - default => '', - example => "XXX", - description => "XXX", + default_plugins => { + type => "internal", + default => [qw{mdwn link inline htmlscrubber passwordauth + openid signinedit lockedit conditional + recentchanges parentlinks}], + description => "plugins to enable by default", safe => 1, rebuild => 1, }, - diffurl => { + add_plugins => { type => "string", - # TODO ditto above - default => '', - example => "XXX", - description => "XXX", + default => [], + description => "plugins to add to the default configuration", safe => 1, rebuild => 1, }, - discussion => { - type => "boolean", - default => 1, - description => "enable Discussion pages?", + disable_plugins => { + type => "string", + default => [], + description => "plugins to disable", safe => 1, rebuild => 1, }, - svnpath => { - # TODO move - type => "string", - default => "trunk", - description => "path inside svn repo where wiki is located", - safe => 0, # could expose/overwrite data - rebuild => 0, - }, - gitorigin_branch => { - type => "string", - default => "origin", - description => "the git origin to pull from", - safe => 0, # paranoia - rebuild => 0, - }, - gitmaster_branch => { - type => "string", - default => "master", - description => "the git master branch", - safe => 0, # paranoia - rebuild => 0, - }, wrappers => { type => "string", - default => undef, + example => [ + { + cgi => 1, + wrapper => "/var/www/wiki/ikiwiki.cgi", + wrappermode => "06755", + }, + ], description => "definitions of wrappers to generate", safe => 0, rebuild => 0, @@ -212,6 +193,13 @@ sub getsetup () { #{{{ safe => 0, # changing requires manual transition rebuild => 1, }, + discussion => { + type => "boolean", + default => 1, + description => "enable Discussion pages?", + safe => 1, + rebuild => 1, + }, default_pageext => { type => "string", default => "mdwn", @@ -270,7 +258,29 @@ sub getsetup () { #{{{ safe => 0, # paranoia rebuild => 0, }, - + umask => { + type => "integer", + description => "", + example => "022", + description => "force ikiwiki to use a particular umask", + safe => 0, # paranoia + rebuild => 0, + }, + libdir => { + type => "string", + default => "", + example => "$ENV{HOME}/.ikiwiki/", + description => "extra library and plugin directory", + safe => 0, # directory + rebuild => 0, + }, + ENV => { + type => "string", + default => {}, + description => "environment variables", + safe => 0, # paranoia + rebuild => 0, + }, exclude => { type => "string", default => undef, @@ -360,37 +370,6 @@ sub getsetup () { #{{{ safe => 0, rebuild => 0, }, - default_plugins => { - type => "internal", - default => [qw{mdwn link inline htmlscrubber passwordauth - openid signinedit lockedit conditional - recentchanges parentlinks}], - description => "plugins to enable by default", - safe => 1, - rebuild => 1, - }, - add_plugins => { - type => "string", - default => [], - description => "plugins to add to the default configuration", - safe => 1, - rebuild => 1, - }, - disable_plugins => { - type => "string", - default => [], - description => "plugins to disable", - safe => 1, - rebuild => 1, - }, - libdir => { - type => "internal", - default => undef, - example => "$ENV{HOME}/.ikiwiki/", - description => "extra library and plugin directory", - safe => 0, - rebuild => 0, - }, } #}}} sub defaultconfig () { #{{{ @@ -449,7 +428,7 @@ sub checkconfig () { #{{{ require IkiWiki::Rcs::Stub; } - if (exists $config{umask}) { + if (defined $config{umask}) { umask(possibly_foolish_untaint($config{umask})); } @@ -458,6 +437,26 @@ sub checkconfig () { #{{{ return 1; } #}}} +sub listplugins () { #{{{ + my %ret; + + foreach my $dir (@INC, $config{libdir}) { + next unless defined $dir; + foreach my $file (glob("$dir/IkiWiki/Plugin/*.pm")) { + my ($plugin)=$file=~/.*\/(.*)\.pm$/; + $ret{$plugin}=1; + } + } + foreach my $dir ($config{libdir}, "$installdir/lib/ikiwiki") { + next unless defined $dir; + foreach my $file (glob("$dir/plugins/*")) { + $ret{basename($file)}=1 if -x $file; + } + } + + return keys %ret; +} #}}} + sub loadplugins () { #{{{ if (defined $config{libdir}) { unshift @INC, possibly_foolish_untaint($config{libdir});