diff --git a/lib/App/Netdisco/Backend/Util.pm b/lib/App/Netdisco/Backend/Util.pm index a957d5e6..48ceb68c 100644 --- a/lib/App/Netdisco/Backend/Util.pm +++ b/lib/App/Netdisco/Backend/Util.pm @@ -3,6 +3,30 @@ package App::Netdisco::Backend::Util; use strict; use warnings; +use Dancer ':syntax'; + +# load core worker plugins for our workers +# NOTE: this package is loaded for all actions whether backend or netdisco-do + +use Module::Load (); + +sub load_core_plugins { + my $plugin_list = shift; + + foreach my $plugin (@$plugin_list) { + $plugin =~ s/^X::/+App::NetdiscoX::Core::Plugin::/; + $plugin = 'App::Netdisco::Core::Plugin::'. $plugin + if $plugin !~ m/^\+/; + $plugin =~ s/^\+//; + + debug "loading Netdisco plugin $plugin"; + eval { Module::Load::load $plugin }; + } +} + +load_core_plugins( setting('extra_core_plugins') || [] ); +load_core_plugins( setting('core_plugins') || [] ); + # support utilities for Backend Actions use base 'Exporter';