From cb6bcbecba8aa33c558a2d9217e284cbefe7513a Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 3 Feb 2011 12:47:36 -0500 Subject: [PATCH] Get the domain/account descriptions before deleting them. --- bin/mailshears | 17 ++++++++--------- src/plugins/dovecot_mailstore.rb | 15 ++++++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/bin/mailshears b/bin/mailshears index 5a156f9..9d870d0 100755 --- a/bin/mailshears +++ b/bin/mailshears @@ -111,19 +111,18 @@ Plugin.includers.each do |plugin_class| if Configuration::I_MEAN_BUSINESS leftover_domains.each do |domain| + # Get the description before we delete the domain. + domain_description = plugin.describe_domain(domain) plugin.delete_domain(domain) - puts "Removed: #{domain} (#{plugin.describe_domain(domain)})" + puts "Removed: #{domain} (#{domain_description})" end leftover_accounts.each do |account| - begin - plugin.delete_account(account) - puts "Removed: #{account} (#{plugin.describe_account(account)})" - rescue NonexistentAccountError => e - # This usually happens after an account's domain is deleted. - # When we try to delete the account, it's already gone. - puts "Gone: #{account} (#{plugin.describe_account(account)})" - end + # Get the description before we delete the domain. + # This can still fail if the account's domain is gone. + account_description = plugin.describe_account(account) + plugin.delete_account(account) + puts "Removed: #{account} (#{account_description})" end end diff --git a/src/plugins/dovecot_mailstore.rb b/src/plugins/dovecot_mailstore.rb index 40b2019..0fffd97 100644 --- a/src/plugins/dovecot_mailstore.rb +++ b/src/plugins/dovecot_mailstore.rb @@ -16,7 +16,7 @@ class DovecotMailstore < Mailstore domain_path = get_domain_path(domain) return domain_path rescue NonexistentDomainError => e - return e.message + return "Doesn't Exist" end end @@ -25,7 +25,7 @@ class DovecotMailstore < Mailstore account_path = get_account_path(account) return account_path rescue NonexistentAccountError => e - return e.message + return "Doesn't Exist" end end @@ -94,7 +94,7 @@ class DovecotMailstore < Mailstore if File.directory?(domain_path) return domain_path else - raise NonexistentDomainError.new(domain_path) + raise NonexistentDomainError end end @@ -110,13 +110,18 @@ class DovecotMailstore < Mailstore user_part = account_parts[0] domain_part = account_parts[1] - domain_path = get_domain_path(domain_part) + begin + domain_path = get_domain_path(domain_part) + rescue NonexistentDomainError + raise NonexistentAccountError + end + account_path = File.join(domain_path, user_part) if File.directory?(account_path) return account_path else - raise NonexistentAccountError.new(account_path) + raise NonexistentAccountError end end -- 2.44.2