websetup: Allow enabling plugins listed in disable_plugins.
authorJoey Hess <joey@kitenet.net>
Sun, 13 Jun 2010 14:21:19 +0000 (10:21 -0400)
committerJoey Hess <joey@kitenet.net>
Sun, 13 Jun 2010 14:21:19 +0000 (10:21 -0400)
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
IkiWiki/Setup.pm
debian/changelog

index d2ed999239b16a36de61bfcff65f892bb8bbd642..203da3ba2d647740e5a3a80193873b39ebd41773 100644 (file)
@@ -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") {
index ee5be95d2a1cdd2a6a07b8174120e9961755c037..2b0259e2ac0e9b258d6537c48399547dba921e1d 100644 (file)
@@ -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}->() };
                }
index fd7d1569e1cc235e3d618599f89b54602414cb23..52b727440ac9d941d556030e8992403fc2ee3058 100644 (file)
@@ -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 <joeyh@debian.org>  Fri, 11 Jun 2010 13:39:15 -0400