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) puts "Removed account: #{target} (#{account_description})" rescue StandardError => e puts "There was an error removing the account: #{e.to_s}" Kernel.exit(ExitCodes::DATABASE_ERROR) end else begin # TODO: Delete all accounts first. domain_description = plugin.describe_domain(target) plugin.delete_domain(target) puts "Removed domain: #{target} (#{domain_description})" rescue StandardError => e puts "There was an error removing the domain: #{e.to_s}" Kernel.exit(ExitCodes::DATABASE_ERROR) end end end # TODO: remove from postfixadmin as well. end end