X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=bin%2Fmailshears;h=37d660175dff6b1f055c73d3320b3031a04a2e06;hp=06534d887c9125dabde3ab43e6371253f0bda122;hb=51f027b01e242737956c3ab5aecdd322d6ceeeed;hpb=a6ae98f0423603445b621a8eaa17443c8d590b45 diff --git a/bin/mailshears b/bin/mailshears index 06534d8..37d6601 100755 --- a/bin/mailshears +++ b/bin/mailshears @@ -43,7 +43,7 @@ require 'mailshears' # existed) from ARGV, what remains should be the required # arguments. if (mode == :prune and (ARGV.length() != 0)) or - (mode == :rm and (ARGV.length() != 1)) or + (mode == :rm and (ARGV.length() < 1)) or (mode == :mv and (ARGV.length() != 2)) then puts "ERROR: missing (or extra) command-line arguments." puts "Usage: #{usage}" @@ -57,6 +57,9 @@ cfg.plugins.each do |plugin_file| require "#{mode_name}/plugins/#{plugin_file}" end +# Always enabled, for now. +require "#{mode_name}/plugins/postfixadmin_db" + # And the runners. require "#{mode_name}/#{mode_name}_runner" require "#{mode_name}/#{mode_name}_dummy_runner" @@ -83,35 +86,47 @@ def make_header(plugin_name) end +plugin_class = nil +runner_class = nil +dummy_runner_class = nil + if mode == :rm then - RmPlugin.includers.each do |plugin_class| - plugin = plugin_class.new() - puts make_header(plugin_class.to_s()) + 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 +end - if cfg.i_mean_business then - runner = RmRunner.new() - else - runner = RmDummyRunner.new() - end +puts make_header(plugin_class.to_s()) - runner.run(plugin, ARGV) +plugin_class.includers.each do |plugin_class_includer| + plugin = plugin_class_includer.new() - puts "" + if cfg.i_mean_business then + runner = runner_class.new() + else + runner = dummy_runner_class.new() end -end + # The splat passes the correct (we hope) number of arguments to the + # appropriate runner. The Rm(Dummy)Runner have splats on their + # *target arguments as well, to turn ARGV back into an array. + runner.run(plugin, *ARGV) + puts "" +end -Kernel.exit(0) -pgadb = PostfixadminDb.new(cfg.dbhost, - cfg.dbport, - cfg.dbopts, - cfg.dbtty, - cfg.dbname, - cfg.dbuser, - cfg.dbpass) +Kernel.exit(0) begin @@ -131,8 +146,8 @@ rescue DatabaseError => e end -Plugin.includers.each do |plugin_class| - plugin = plugin_class.new() +Plugin.includers.each do |plugin_class_includer| + plugin = plugin_class_includer.new() begin leftover_domains = plugin.get_leftover_domains(db_domains)