]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
fix links
[git.ikiwiki.info.git] / IkiWiki.pm
index 01798941c173bbcd264cf2ca45151fd076ab536c..4e4da11c5a016daa9d04c0b6ee04df7f786a14a7 100644 (file)
@@ -395,6 +395,13 @@ sub getsetup () { #{{{
                safe => 0,
                rebuild => 0,
        },
                safe => 0,
                rebuild => 0,
        },
+       allow_symlinks_before_srcdir => {
+               type => "string",
+               default => 0,
+               description => "allow symlinks in the path leading to the srcdir (potentially insecure)",
+               safe => 0,
+               rebuild => 0,
+       },
 } #}}}
 
 sub defaultconfig () { #{{{
 } #}}}
 
 sub defaultconfig () { #{{{
@@ -513,7 +520,11 @@ sub loadplugin ($) { #{{{
        foreach my $dir (defined $config{libdir} ? possibly_foolish_untaint($config{libdir}) : undef,
                         "$installdir/lib/ikiwiki") {
                if (defined $dir && -x "$dir/plugins/$plugin") {
        foreach my $dir (defined $config{libdir} ? possibly_foolish_untaint($config{libdir}) : undef,
                         "$installdir/lib/ikiwiki") {
                if (defined $dir && -x "$dir/plugins/$plugin") {
-                       require IkiWiki::Plugin::external;
+                       eval { require IkiWiki::Plugin::external };
+                       if ($@) {
+                               my $reason=$@;
+                               error(sprintf(gettext("failed to load external plugin needed for %s plugin: %s"), $plugin, $reason));
+                       }
                        import IkiWiki::Plugin::external "$dir/plugins/$plugin";
                        $loaded_plugins{$plugin}=1;
                        return 1;
                        import IkiWiki::Plugin::external "$dir/plugins/$plugin";
                        $loaded_plugins{$plugin}=1;
                        return 1;