require 'common/runner' class RmRunner include Runner def run(plugin, *targets) targets.each do |target| # Why think too hard? An account has an @, a domain doesn't. if target.include?('@') then begin account_description = plugin.describe_account(target) plugin.delete_account(target) report(plugin, "Removed account: #{target} (#{account_description})") rescue NonexistentAccountError => e report(plugin, "Account not found: #{e.to_s}") rescue StandardError => e report(plugin, "There was an error removing the account: #{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})") rescue NonexistentAccountError => e # Can happen in the usernames.each... block. report(plugin, "Account 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 end end end end