X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=bin%2Fmailshears;fp=bin%2Fmailshears;h=09735ba26ba7087711a8b81605483a0b00d9ea4b;hp=06534d887c9125dabde3ab43e6371253f0bda122;hb=e3826d8926e11763837a591986d453e9ef5d9dec;hpb=a6ae98f0423603445b621a8eaa17443c8d590b45 diff --git a/bin/mailshears b/bin/mailshears index 06534d8..09735ba 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}" @@ -83,21 +83,42 @@ 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 - runner.run(plugin, ARGV) +plugin_class.includers.each do |plugin_class_includer| + plugin = plugin_class_includer.new() + puts make_header(plugin_class.to_s()) - puts "" + if cfg.i_mean_business then + runner = runner_class.new() + else + runner = dummy_runner_class.new() 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 @@ -131,8 +152,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)