Setup automator: Check that each plugin added to the generated setup file can be loaded and that its config is ok. If a plugin fails for any reason, disable it in the generated file. Closes: 532001
parent
9e74d60057
commit
0293ae8e3d
|
@ -98,6 +98,29 @@ sub import (@) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Make sure that all the listed plugins can load
|
||||||
|
# and checkconfig is ok. If a plugin fails to work,
|
||||||
|
# remove it from the configuration and keep on truckin'.
|
||||||
|
my %bakconfig=%config; # checkconfig can modify %config so back up
|
||||||
|
if (! eval { IkiWiki::loadplugins(); IkiWiki::checkconfig() }) {
|
||||||
|
foreach my $plugin (@{$config{default_plugins}}, @{$bakconfig{add_plugins}}) {
|
||||||
|
eval {
|
||||||
|
# delete all hooks so that only this plugins's
|
||||||
|
# checkconfig will be run
|
||||||
|
%IkiWiki::hooks=();
|
||||||
|
IkiWiki::loadplugin($plugin);
|
||||||
|
IkiWiki::run_hooks(checkconfig => sub { shift->() });
|
||||||
|
};
|
||||||
|
if ($@) {
|
||||||
|
print STDERR sprintf(gettext("** Disabling plugin %s, since it is failing with this message:"),
|
||||||
|
$plugin)."\n";
|
||||||
|
print STDERR "$@\n";
|
||||||
|
push @{$bakconfig{disable_plugins}}, $plugin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%config=%bakconfig;
|
||||||
|
|
||||||
# Generate setup file.
|
# Generate setup file.
|
||||||
require IkiWiki::Setup;
|
require IkiWiki::Setup;
|
||||||
IkiWiki::Setup::dump($config{dumpsetup});
|
IkiWiki::Setup::dump($config{dumpsetup});
|
||||||
|
|
|
@ -9,6 +9,10 @@ ikiwiki (3.15) UNRELEASED; urgency=low
|
||||||
allow an unterminated """ string to be treated as a series
|
allow an unterminated """ string to be treated as a series
|
||||||
of bare words. Fixes runaway regexp recursion/backtracking
|
of bare words. Fixes runaway regexp recursion/backtracking
|
||||||
in strange situations.
|
in strange situations.
|
||||||
|
* Setup automator: Check that each plugin added to the generated
|
||||||
|
setup file can be loaded and that its config is ok. If a plugin
|
||||||
|
fails for any reason, disable it in the generated file.
|
||||||
|
Closes: 532001
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Tue, 02 Jun 2009 17:03:41 -0400
|
-- Joey Hess <joeyh@debian.org> Tue, 02 Jun 2009 17:03:41 -0400
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue