]> scripts.mit.edu Git - www/ikiwiki.git/blobdiff - ikiwiki
forgot to add this
[www/ikiwiki.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index cdb2042e170a3f8a89373b76429a2a0f93c784b9..28eba6f64e98e1298e9a32e61dbe6cb1f2897847 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -15,6 +15,7 @@ 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},
@@ -66,6 +67,13 @@ sub getconfig () { #{{{
                ) || usage();
 
                if (! $config{setup}) {
+                       loadplugins();
+                       run_hooks(getopt => sub { shift->() });
+                       if (grep /^-/, @ARGV) {
+                               print STDERR "Unknown option: $_\n"
+                                       foreach grep /^-/, @ARGV;
+                               usage();
+                       }
                        usage() unless @ARGV == 2;
                        $config{srcdir} = possibly_foolish_untaint(shift @ARGV);
                        $config{destdir} = possibly_foolish_untaint(shift @ARGV);
@@ -79,6 +87,7 @@ sub getconfig () { #{{{
                if ($@) {
                        error("WRAPPED_OPTIONS: $@");
                }
+               loadplugins();
                checkconfig();
        }
 } #}}}