]> sipb.mit.edu Git - ikiwiki.git/blobdiff - ikiwiki
* Encode link and guid urls in rss feeds to avoid illegal utf8 slipping in.
[ikiwiki.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index 4801c5f92e734df7bf7f9c170519c59b31875c77..1342ec543f3e54c216e16cb615e9493c67484e8a 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -1,5 +1,6 @@
 #!/usr/bin/perl -T
 $ENV{PATH}="/usr/local/bin:/usr/bin:/bin";
+delete @ENV{qw{IFS CDPATH ENV BASH_ENV}};
 
 package IkiWiki;
 use warnings;
@@ -15,12 +16,14 @@ sub getconfig () { #{{{
        if (! exists $ENV{WRAPPED_OPTIONS}) {
                %config=defaultconfig();
                eval q{use Getopt::Long};
+               Getopt::Long::Configure('pass_through');
                GetOptions(
                        "setup|s=s" => \$config{setup},
                        "wikiname=s" => \$config{wikiname},
                        "verbose|v!" => \$config{verbose},
                        "rebuild!" => \$config{rebuild},
                        "refresh!" => \$config{refresh},
+                       "wrappers!" => \$config{wrappers},
                        "getctime" => \$config{getctime},
                        "wrappermode=i" => \$config{wrappermode},
                        "rcs=s" => \$config{rcs},
@@ -28,8 +31,9 @@ sub getconfig () { #{{{
                        "anonok!" => \$config{anonok},
                        "rss!" => \$config{rss},
                        "cgi!" => \$config{cgi},
+                       "discussion!" => \$config{discussion},
+                       "w3mmode!" => \$config{w3mmode},
                        "notify!" => \$config{notify},
-                       "sanitize!" => \$config{sanitize},
                        "url=s" => \$config{url},
                        "cgiurl=s" => \$config{cgiurl},
                        "historyurl=s" => \$config{historyurl},
@@ -37,6 +41,7 @@ sub getconfig () { #{{{
                        "svnrepo" => \$config{svnrepo},
                        "svnpath" => \$config{svnpath},
                        "adminemail=s" => \$config{adminemail},
+                       "timeformat=s" => \$config{timeformat},
                        "exclude=s@" => sub {
                                $config{wiki_file_prune_regexp}=qr/$config{wiki_file_prune_regexp}|$_[1]/;
                        },
@@ -54,10 +59,17 @@ sub getconfig () { #{{{
                        },
                        "plugin=s@" => sub {
                                push @{$config{plugin}}, $_[1];
+                       },
+                       "disable-plugin=s@" => sub {
+                               $config{plugin}=[grep { $_ ne $_[1] } @{$config{plugin}}];
+                       },
+                       "pingurl" => sub {
+                               push @{$config{pingurl}}, $_[1];
                        }
                ) || usage();
 
                if (! $config{setup}) {
+                       loadplugins();
                        usage() unless @ARGV == 2;
                        $config{srcdir} = possibly_foolish_untaint(shift @ARGV);
                        $config{destdir} = possibly_foolish_untaint(shift @ARGV);
@@ -71,6 +83,7 @@ sub getconfig () { #{{{
                if ($@) {
                        error("WRAPPED_OPTIONS: $@");
                }
+               loadplugins();
                checkconfig();
        }
 } #}}}
@@ -98,7 +111,6 @@ sub main () { #{{{
                loadindex();
                require IkiWiki::Render;
                rcs_update();
-               rcs_getctime() if $config{getctime};
                refresh();
                rcs_notify() if $config{notify};
                saveindex();