X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Frm%2Frm_runner.rb;fp=lib%2Frm%2Frm_runner.rb;h=2df8410c5ea9d6d3d65d2565ec9cc00552d7b1f0;hp=71421547e7e88e02247070680dce940f890c30f2;hb=f819b178c5c1cb8adda0182c610e5c52fad8bea7;hpb=8a3e804a4c5f33bee1d80243be6b139e45f07a48 diff --git a/lib/rm/rm_runner.rb b/lib/rm/rm_runner.rb index 7142154..2df8410 100644 --- a/lib/rm/rm_runner.rb +++ b/lib/rm/rm_runner.rb @@ -6,37 +6,32 @@ class RmRunner def run(plugin, *targets) targets.each do |target| - # Why think too hard? An user has an @, a domain doesn't. - if target.include?('@') then - begin - user_description = plugin.describe_user(target) - plugin.delete_user(target) - report(plugin, "Removed user: #{target} (#{user_description})") + remove_target(plugin, target) + end + end + + private; + + def remove_target(plugin, target) + # Wrap the "remove this thing" operation so that it can be reused + # in the prine plugin. + target_description = plugin.describe(target) - rescue NonexistentUserError => e - report(plugin, "User not found: #{e.to_s}") - rescue StandardError => e - report(plugin, "There was an error removing the user: #{e.to_s}") - Kernel.exit(ExitCodes::DATABASE_ERROR) - end - else - begin - domain_description = plugin.describe_domain(target) - plugin.delete_domain(target) - report(plugin, "Removed domain: #{target} (#{domain_description})") + begin + plugin.delete(target) + msg = "Removed #{target.class.to_s().downcase()} #{target}" - rescue NonexistentUserError => e - # Can happen in the usernames.each... block. - report(plugin, "User not found: #{e.to_s}") - rescue NonexistentDomainError => e - report(plugin, "Domain not found: #{e.to_s}") - rescue StandardError => e - report(plugin, "There was an error removing the domain: #{e.to_s}") - Kernel.exit(ExitCodes::DATABASE_ERROR) - end + # Only append the extra description if it's useful. + if not target_description.nil? and + not target_description.empty? and + not target_description == target.to_s() then + msg += " (#{target_description})" end - end + msg += '.' + report(plugin, msg) + rescue NonexistentDomainError, NonexistentUserError => e + report(plugin, "#{target.class.to_s()} #{e.to_s} not found.") + end end - end