--- /dev/null
+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