From 17592a951bf06ede47f500af25308e9c68944279 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 13 Jun 2010 10:21:19 -0400 Subject: [PATCH] websetup: Allow enabling plugins listed in disable_plugins. The bug here was that disabling a plugin included thru goodstuff, like htmlscrubber, caused it to be added to disable_plugins, and those plugins were never loaded, so could not be re-enabled. Fix by allowing them to be force loaded when appropriate. (Also that allows disabled plugins to still record their setup options when dumping a setup file.) --- IkiWiki.pm | 5 +++-- IkiWiki/Setup.pm | 2 +- debian/changelog | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/IkiWiki.pm b/IkiWiki.pm index d2ed99923..203da3ba2 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -592,10 +592,11 @@ sub loadplugins () { return 1; } -sub loadplugin ($) { +sub loadplugin ($;$) { my $plugin=shift; + my $force=shift; - return if grep { $_ eq $plugin} @{$config{disable_plugins}}; + return if ! $force && grep { $_ eq $plugin} @{$config{disable_plugins}}; foreach my $dir (defined $config{libdir} ? possibly_foolish_untaint($config{libdir}) : undef, "$installdir/lib/ikiwiki") { diff --git a/IkiWiki/Setup.pm b/IkiWiki/Setup.pm index ee5be95d2..2b0259e2a 100644 --- a/IkiWiki/Setup.pm +++ b/IkiWiki/Setup.pm @@ -123,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}->() }; } diff --git a/debian/changelog b/debian/changelog index fd7d1569e..52b727440 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,7 @@ ikiwiki (3.20100611) UNRELEASED; urgency=low else (still looks in old location for backwards compatability). * attachment: When inserting links, insert img directives for images, if that plugin is enabled. + * websetup: Allow enabling plugins listed in disable_plugins. -- Joey Hess Fri, 11 Jun 2010 13:39:15 -0400