# filesystem, but not the database.
#
-# We need Pathname to get the real filesystem path
-# of this script (and not, for example, the path of
-# a symlink which points to it).
-require 'pathname'
-
-# This bit of magic adds the parent directory (the
-# project root) to the list of ruby load paths.
-# Thus, our require statements will work regardless of
-# how or from where the script was run.
-executable = Pathname.new(__FILE__).realpath.to_s
-$: << File.dirname(executable) + '/../'
-
# Needed for rm_rf.
require 'fileutils'
# Load our config file.
-require 'bin/configuration'
+require 'configuration'
# And the necessary classes.
-require 'src/errors.rb'
-require 'src/exit_codes.rb'
-require 'src/postfixadmin_db'
+require 'errors.rb'
+require 'exit_codes.rb'
+require 'postfixadmin_db'
Configuration::PLUGINS.each do |plugin_file|
- require "src/plugins/#{plugin_file}"
+ require "plugins/#{plugin_file}"
end
pgadb = PostfixadminDb.new(Configuration::DBHOST,
end
if Configuration::I_MEAN_BUSINESS
+ # We have to delete the accounts before the domain,
+ # otherwise they'd already be gone.
+ leftover_accounts.each do |account|
+ # 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
+
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)})"
- 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
+ puts "Removed: #{domain} (#{domain_description})"
end
end