]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
add example wrapper and fix formatting
[ikiwiki.git] / IkiWiki.pm
index edbec77d62ed55f977f97c6f8b476d06c65c6676..c7c5aaf979fd8d265cd1e740355508b341197809 100644 (file)
@@ -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});