]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/rm/rm_runner.rb
In the middle of refactoring the binary to accept three modes of execution. Does...
[mailshears.git] / lib / rm / rm_runner.rb
diff --git a/lib/rm/rm_runner.rb b/lib/rm/rm_runner.rb
new file mode 100644 (file)
index 0000000..039ae61
--- /dev/null
@@ -0,0 +1,32 @@
+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