]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - ikiwiki
utf-8 support seems to be working now
[git.ikiwiki.info.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index af90d22880a6a126e15fe16eb1f4d1014294d320..3ea6b7aa05109ab47234a73eb161f023ee049c58 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -T
+#!/usr/bin/perl -T -CSD
 $ENV{PATH}="/usr/local/bin:/usr/bin:/bin";
 
 package IkiWiki;
 $ENV{PATH}="/usr/local/bin:/usr/bin:/bin";
 
 package IkiWiki;
@@ -13,42 +13,7 @@ sub usage () { #{{{
 
 sub getconfig () { #{{{
        if (! exists $ENV{WRAPPED_OPTIONS}) {
 
 sub getconfig () { #{{{
        if (! exists $ENV{WRAPPED_OPTIONS}) {
-               %config=(
-                       wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.html?$|\.rss$)},
-                       wiki_link_regexp => qr/\[\[(?:([^\s\]\|]+)\|)?([^\s\]]+)\]\]/,
-                       wiki_processor_regexp => qr/\[\[(\w+)\s+([^\]]*)\]\]/,
-                       wiki_file_regexp => qr/(^[-[:alnum:]_.:\/+]+$)/,
-                       verbose => 0,
-                       wikiname => "wiki",
-                       default_pageext => ".mdwn",
-                       cgi => 0,
-                       rcs => 'svn',
-                       notify => 0,
-                       url => '',
-                       cgiurl => '',
-                       historyurl => '',
-                       diffurl => '',
-                       anonok => 0,
-                       rss => 0,
-                       sanitize => 1,
-                       rebuild => 0,
-                       refresh => 0,
-                       getctime => 0,
-                       hyperestraier => 0,
-                       wrapper => undef,
-                       wrappermode => undef,
-                       svnrepo => undef,
-                       svnpath => "trunk",
-                       srcdir => undef,
-                       destdir => undef,
-                       templatedir => "/usr/share/ikiwiki/templates",
-                       underlaydir => "/usr/share/ikiwiki/basewiki",
-                       setup => undef,
-                       adminuser => undef,
-                       adminemail => undef,
-                       plugin => [qw{inline}],
-               );
-
+               %config=defaultconfig();
                eval q{use Getopt::Long};
                GetOptions(
                        "setup|s=s" => \$config{setup},
                eval q{use Getopt::Long};
                GetOptions(
                        "setup|s=s" => \$config{setup},
@@ -61,19 +26,16 @@ sub getconfig () { #{{{
                        "rcs=s" => \$config{rcs},
                        "no-rcs" => sub { $config{rcs}="" },
                        "anonok!" => \$config{anonok},
                        "rcs=s" => \$config{rcs},
                        "no-rcs" => sub { $config{rcs}="" },
                        "anonok!" => \$config{anonok},
-                       "hyperestraier" => \$config{hyperestraier},
                        "rss!" => \$config{rss},
                        "cgi!" => \$config{cgi},
                        "rss!" => \$config{rss},
                        "cgi!" => \$config{cgi},
+                       "discussion!" => \$config{discussion},
                        "notify!" => \$config{notify},
                        "notify!" => \$config{notify},
-                       "sanitize!" => \$config{sanitize},
                        "url=s" => \$config{url},
                        "cgiurl=s" => \$config{cgiurl},
                        "historyurl=s" => \$config{historyurl},
                        "diffurl=s" => \$config{diffurl},
                        "svnrepo" => \$config{svnrepo},
                        "svnpath" => \$config{svnpath},
                        "url=s" => \$config{url},
                        "cgiurl=s" => \$config{cgiurl},
                        "historyurl=s" => \$config{historyurl},
                        "diffurl=s" => \$config{diffurl},
                        "svnrepo" => \$config{svnrepo},
                        "svnpath" => \$config{svnpath},
-                       "rcs=s" => \$config{rcs},
-                       "no-rcs" => sub { $config{rcs}="" },
                        "adminemail=s" => \$config{adminemail},
                        "exclude=s@" => sub {
                                $config{wiki_file_prune_regexp}=qr/$config{wiki_file_prune_regexp}|$_[1]/;
                        "adminemail=s" => \$config{adminemail},
                        "exclude=s@" => sub {
                                $config{wiki_file_prune_regexp}=qr/$config{wiki_file_prune_regexp}|$_[1]/;
@@ -92,7 +54,10 @@ sub getconfig () { #{{{
                        },
                        "plugin=s@" => sub {
                                push @{$config{plugin}}, $_[1];
                        },
                        "plugin=s@" => sub {
                                push @{$config{plugin}}, $_[1];
-                       }
+                       },
+                       "disable-plugin=s@" => sub {
+                               $config{plugin}=[grep { $_ ne $_[1] } @{$config{plugin}} ];
+                       },
                ) || usage();
 
                if (! $config{setup}) {
                ) || usage();
 
                if (! $config{setup}) {
@@ -106,6 +71,9 @@ sub getconfig () { #{{{
                # wrapper passes a full config structure in the environment
                # variable
                eval possibly_foolish_untaint($ENV{WRAPPED_OPTIONS});
                # wrapper passes a full config structure in the environment
                # variable
                eval possibly_foolish_untaint($ENV{WRAPPED_OPTIONS});
+               if ($@) {
+                       error("WRAPPED_OPTIONS: $@");
+               }
                checkconfig();
        }
 } #}}}
                checkconfig();
        }
 } #}}}
@@ -133,7 +101,6 @@ sub main () { #{{{
                loadindex();
                require IkiWiki::Render;
                rcs_update();
                loadindex();
                require IkiWiki::Render;
                rcs_update();
-               rcs_getctime() if $config{getctime};
                refresh();
                rcs_notify() if $config{notify};
                saveindex();
                refresh();
                rcs_notify() if $config{notify};
                saveindex();