X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/19a794b4829c548a7f5b9dc22e22c24d7f28bad8..57e56828f5b03f8fb31631f36731f989d4335607:/IkiWiki/Setup.pm?ds=sidebyside diff --git a/IkiWiki/Setup.pm b/IkiWiki/Setup.pm index a71a12d9d..2b0259e2a 100644 --- a/IkiWiki/Setup.pm +++ b/IkiWiki/Setup.pm @@ -28,18 +28,19 @@ sub load ($;$) { } close IN; - if ($content=~/(use\s+)?(IkiWiki::Setup::\w+)/) { + if ($content=~/((?:use|require)\s+)?IkiWiki::Setup::(\w+)/) { $config{setuptype}=$2; if ($1) { error sprintf(gettext("cannot load %s in safe mode"), $file) if $safemode; + no warnings; eval IkiWiki::possibly_foolish_untaint($content); error("$file: ".$@) if $@; } else { - eval qq{require $config{setuptype}}; + eval qq{require IkiWiki::Setup::$config{setuptype}}; error $@ if $@; - $config{setuptype}->loaddump(IkiWiki::possibly_foolish_untaint($content)); + "IkiWiki::Setup::$config{setuptype}"->loaddump(IkiWiki::possibly_foolish_untaint($content)); } } else { @@ -50,9 +51,9 @@ sub load ($;$) { sub dump ($) { my $file=IkiWiki::possibly_foolish_untaint(shift); - eval qq{require $config{setuptype}}; + eval qq{require IkiWiki::Setup::$config{setuptype}}; error $@ if $@; - my @dump=$config{setuptype}->gendump( + my @dump="IkiWiki::Setup::$config{setuptype}"->gendump( "Setup file for ikiwiki.", "", "Passing this to ikiwiki --setup will make ikiwiki generate", @@ -122,7 +123,7 @@ sub getsetup () { # Load all plugins, so that all setup options are available. my @plugins=IkiWiki::listplugins(); foreach my $plugin (@plugins) { - eval { IkiWiki::loadplugin($plugin) }; + eval { IkiWiki::loadplugin($plugin, 1) }; if (exists $IkiWiki::hooks{checkconfig}{$plugin}{call}) { my @s=eval { $IkiWiki::hooks{checkconfig}{$plugin}{call}->() }; }