Generalize the plugin mechanism with a Plugin module that knows when it's included.
[mailshears.git] / bin / mailshears
index 6e84751161ae0566387a8a5e34b0f4876fdb9bfb..abf46cc9c188da4be8f0326345588d2fddb186da 100755 (executable)
@@ -34,9 +34,12 @@ require 'bin/configuration'
 # And the necessary classes.
 require 'src/errors.rb'
 require 'src/exit_codes.rb'
-require 'src/dovecot_mailstore'
 require 'src/postfixadmin_db'
 
+Configuration::PLUGINS.each do |plugin_file|
+  require "src/plugins/#{plugin_file}"
+end
+
 pgadb = PostfixadminDb.new(Configuration::DBHOST,
                            Configuration::DBPORT,
                            Configuration::DBOPTS,
@@ -63,9 +66,7 @@ rescue DatabaseError => e
 end
 
 
-Configuration::PLUGINS.each do |plugin_name|
-  # Convert a string into a class.
-  plugin_class = Kernel.const_get(plugin_name)
+Plugin.includers.each do |plugin_class|
   plugin = plugin_class.new()
 
   begin