X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=src%2Fdovecot_mailstore.rb;h=ee12da905412a207f9e092b60507382fb84ab16d;hp=d675efc9be45b883c02fdcb15233fea57d71e270;hb=6a172f997768b49c5e56cecdfcc4f67a5f11d793;hpb=6732f04111887cf7d940349719481dc4b00d5c36 diff --git a/src/dovecot_mailstore.rb b/src/dovecot_mailstore.rb index d675efc..ee12da9 100644 --- a/src/dovecot_mailstore.rb +++ b/src/dovecot_mailstore.rb @@ -4,11 +4,51 @@ require 'src/mailstore' class DovecotMailstore < Mailstore + def initialize + @domain_root = Configuration::MAIL_ROOT + end + + def describe_domain(domain) + return get_domain_path(domain) + end + + def describe_account(account) + return get_account_path(account) + end + + def delete_domain(domain) + domain_path = self.get_domain_path(domain) + FileUtils.rm_rf(domain_path) + end + + def delete_account(account) + account_path = self.get_account_path(account) + FileUtils.rm_rf(account_path) + end + + def get_leftover_domains(db_domains) + # Get the list of domains according to the filesystem. + fs_domains = self.get_domains_from_filesystem() + + # Return the list of domains on the filesystem that aren't in the DB. + return (fs_domains - db_domains) + end + + def get_leftover_accounts(db_accounts) + # Get the list of accounts according to the filesystem. + fs_domains = self.get_domains_from_filesystem() + fs_accounts = self.get_accounts_from_filesystem(fs_domains) + + # And return the accounts on the filesystem that aren't in the DB. + return (fs_accounts - db_accounts) + end + + protected; + def get_domains_from_filesystem() return Filesystem.get_subdirs(@domain_root) end - def get_accounts_from_filesystem(domains) accounts = []