]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/mv/plugins/dovecot_mailstore.rb
Add a bunch more crap and rewrite a bunch more crap. Now the 'rm' mode at least runs.
[mailshears.git] / lib / mv / plugins / dovecot_mailstore.rb
index 4ce1437f8fa474da5a9d77b798e6a8620a7d2fea..f16f1165af99ad055384e20862594829d2db72bd 100644 (file)
@@ -1,38 +1,13 @@
-# Needed for rm_rf.
-require 'fileutils'
-
 require 'common/filesystem'
 require 'common/mailstore'
-require 'common/plugin'
+require 'common/dovecot_mailstore_plugin'
 require 'mv/mv_plugin'
 
 class DovecotMailstoreMv < Mailstore
 
-  include Plugin
+  include DovecotMailstorePlugin
   include MvPlugin
 
-  def initialize
-    cfg = Configuration.new()
-    @domain_root = cfg.mail_root
-  end
-
-  def describe_domain(domain)
-    begin
-      domain_path = get_domain_path(domain)
-      return domain_path
-    rescue NonexistentDomainError => e
-      return "Doesn't exist: #{e.to_s}"
-    end
-  end
-
-  def describe_account(account)
-    begin
-      account_path = get_account_path(account)
-      return account_path
-    rescue NonexistentAccountError => e
-      return "Doesn't exist: #{e.to_s}"
-    end
-  end
 
   def mv_domain(from, to)
     from_path = self.get_domain_path(from)
@@ -46,48 +21,4 @@ class DovecotMailstoreMv < Mailstore
     FileUtils.mv(from_path, to_path)
   end
 
-  protected;
-
-
-  def get_domain_path(domain)
-    # Return the filesystem path for the given domain.
-    # That is, the directory where its mail is stored.
-    # Only works if the domain directory exists!
-    domain_path = File.join(@domain_root, domain)
-
-    if File.directory?(domain_path)
-      return domain_path
-    else
-      raise NonexistentDomainError.new(domain)
-    end
-  end
-
-
-  def get_account_path(account)
-    # Return the filesystem path of this account's mailbox.
-    # Only works if the account exists!
-    if not account.include?('@')
-      msg = "#{account}: Accounts must contain an '@' symbol."
-      raise InvalidAccountError.new(msg)
-    end
-
-    account_parts = account.split('@')
-    user_part = account_parts[0]
-    domain_part = account_parts[1]
-
-    begin
-      domain_path = get_domain_path(domain_part)
-    rescue NonexistentDomainError
-      raise NonexistentAccountError.new(account)
-    end
-
-    account_path = File.join(domain_path, user_part)
-
-    if File.directory?(account_path)
-      return account_path
-    else
-      raise NonexistentAccountError(account)
-    end
-  end
-
 end