aboutsummaryrefslogtreecommitdiff
path: root/idalius.pl
diff options
context:
space:
mode:
authorDavid Phillips <david@sighup.nz>2018-09-21 21:50:50 +1200
committerDavid Phillips <david@sighup.nz>2018-09-21 21:50:50 +1200
commit47b4448199799aca7c0fb3e0090e244112c8959c (patch)
treeb79469ab87678500fe17af796a144042d2edcfa0 /idalius.pl
parentb65441dbdb62e575fbb69580342e50079c871d18 (diff)
downloadidalius-47b4448199799aca7c0fb3e0090e244112c8959c.tar.xz
Move module configuration to callback
This lets modules loaded dynamically (i.e. those not specified in configuation used at the start of execution) get configured correctly to e.g. record a reference to their configuration and register commands.
Diffstat (limited to 'idalius.pl')
-rwxr-xr-xidalius.pl17
1 files changed, 12 insertions, 5 deletions
diff --git a/idalius.pl b/idalius.pl
index 627d91f..d6b0c06 100755
--- a/idalius.pl
+++ b/idalius.pl
@@ -23,14 +23,11 @@ sub log_info {
print "$stamp | @_\n";
}
+Plugin::set_load_callback(\&module_loaded_callback);
+
eval {
for my $module (@{$config->{_}->{plugins}}) {
Plugin::load_plugin(\&log_info, $config->{_}, $module);
- $module->configure(
- \&register_command,
- \&run_command,
- $config->{$module},
- $config->{_});
}
1;
} or do {
@@ -85,6 +82,16 @@ drop_priv();
$poe_kernel->run();
+sub module_loaded_callback {
+ my ($module) = @_;
+
+ $module->configure(
+ \&register_command,
+ \&run_command,
+ $config->{$module},
+ $config->{_});
+}
+
sub module_is_enabled {
my $module = $_[0];