-begin
- # ...and according to the Postfixadmin database.
- db_accts = pgadb.get_accounts_from_db()
-rescue DatabaseError => e
- puts "There was an error connecting to the database: #{e.to_s}"
- Kernel.exit(ExitCodes::DATABASE_ERROR)
+# And the runners.
+require "#{mode_name}/#{mode_name}_runner"
+require "#{mode_name}/#{mode_name}_dummy_runner"
+
+def make_header(plugin_name)
+ # The header that we output before the list of domains/accounts.
+ # Just the path of this script, the current time, and the plugin name.
+ exe = File.basename($PROGRAM_NAME)
+ header = "#{exe}, "
+
+ current_time = Time.now()
+ if current_time.respond_to?(:iso8601)
+ # Somehow this method is missing on some machines.
+ header += current_time.iso8601.to_s
+ else
+ # Fall back to whatever this looks like.
+ header += current_time.to_s
+ end
+
+ header += ' (Plugin: ' + plugin_name + ")\n"
+ header += '-' * header.size # Underline the header.
+
+ return header
+end
+
+
+plugin_class = nil
+runner_class = nil
+dummy_runner_class = nil
+
+if mode == :rm then
+ plugin_class = RmPlugin
+ runner_class = RmRunner
+ dummy_runner_class = RmDummyRunner
+elsif mode == :mv then
+ plugin_class = MvPlugin
+ runner_class = MvRunner
+ dummy_runner_class = MvDummyRunner
+else
+ # Safe, catch-all default
+ plugin_class = PrunePlugin
+ runner_class = PruneRunner
+ dummy_runner_class = PruneDummyRunner