lib/postfix_admin/runner.rb in postfix_admin-0.1.4 vs lib/postfix_admin/runner.rb in postfix_admin-0.2.0

- old
+ new

@@ -3,54 +3,58 @@ require 'postfix_admin/cli' require 'postfix_admin/doveadm' module PostfixAdmin class Runner < Thor + def self.exit_on_failure? + true + end + def initialize(*args) super @cli = CLI.new end desc "summary [example.com]", "Summarize the usage of PostfixAdmin" - def summary(domain_name=nil) - runner{ @cli.show_summary(domain_name) } + def summary(domain_name = nil) + runner { @cli.show_summary(domain_name) } end desc "schemes", "List all supported password schemes" def schemes - runner{ puts PostfixAdmin::Doveadm.schemes.join(' ') } + runner { puts PostfixAdmin::Doveadm.schemes.join(' ') } end desc "show [example.com | admin@example.com | user@example.com]", "Show domains or admins or mailboxes" - def show(name=nil) - runner{ @cli.show(name) } + def show(name = nil) + runner { @cli.show(name) } end desc "setup example.com password", "Setup a domain" def setup(domain_name, password) - runner{ @cli.setup_domain(domain_name, password) } + runner { @cli.setup_domain(domain_name, password) } end desc "admin_passwd admin@example.com new_password", "Change password of admin" def admin_passwd(user_name, password) - runner{ @cli.change_admin_password(user_name, password) } + runner { @cli.change_admin_password(user_name, password) } end desc "account_passwd user@example.com new_password", "Change password of account" def account_passwd(user_name, password) - runner{ @cli.change_account_password(user_name, password) } + runner { @cli.change_account_password(user_name, password) } end desc "add_domain example.com", "Add a domain" def add_domain(domain_name) - runner{ @cli.add_domain(domain_name) } + runner { @cli.add_domain(domain_name) } end desc "edit_domain example.com", "Edit a domain limitation" - method_option :aliases, :type => :numeric, :aliases => "-a", :desc => "Edit aliases limitation" - method_option :mailboxes, :type => :numeric, :aliases => "-m", :desc => "Edit mailboxes limitation" - method_option :maxquota, :type => :numeric, :aliases => "-q", :desc => "Edit max quota limitation" + method_option :aliases, type: :numeric, aliases: "-a", desc: "Edit aliases limitation" + method_option :mailboxes, type: :numeric, aliases: "-m", desc: "Edit mailboxes limitation" + method_option :maxquota, type: :numeric, aliases: "-q", desc: "Edit max quota limitation" method_option :active, type: :boolean, desc: "Update active status" def edit_domain(domain_name) runner do if options.size == 0 warn "Use one or more options." @@ -61,26 +65,26 @@ end end desc "delete_domain example.com", "Delete a domain" def delete_domain(domain_name) - runner{ @cli.delete_domain(domain_name) } + runner { @cli.delete_domain(domain_name) } end desc "delete_admin admin@example.com", "Delete an admin" def delete_admin(user_name) - runner{ @cli.delete_admin(user_name) } + runner { @cli.delete_admin(user_name) } end desc "delete_account user@example.com", "Delete an account" def delete_account(address) - runner{ @cli.delete_account(address) } + runner { @cli.delete_account(address) } end desc "add_account user@example.com password", "Add an account" - method_option :scheme, :type => :string, :aliases => "-s", :desc => "password scheme" - method_option :name, :type => :string, :aliases => "-n", :desc => "full name" + method_option :scheme, type: :string, aliases: "-s", desc: "password scheme" + method_option :name, type: :string, aliases: "-n", desc: "full name" def add_account(address, password) runner do if options[:scheme] == 'scheme' warn "Specify password scheme" help('add_account') @@ -94,13 +98,13 @@ end end end desc "edit_account user@example.com", "Edit an account" - method_option :goto, :type => :string, :aliases => "-g", :desc => "mailboxes, addresses e-mails are delivered to" - method_option :quota, :type => :numeric, :aliases => "-q", :desc => "quota limitation (MB)" - method_option :name, :type => :string, :aliases => "-n", :desc => "full name" + method_option :goto, type: :string, aliases: "-g", desc: "mailboxes, addresses e-mails are delivered to" + method_option :quota, type: :numeric, aliases: "-q", desc: "quota limitation (MB)" + method_option :name, type: :string, aliases: "-n", desc: "full name" method_option :active, type: :boolean, desc: "Update active status" def edit_account(address) runner do if options.size == 0 warn "Use one or more options." @@ -129,12 +133,12 @@ end end end desc "add_admin admin@example.com password", "Add an admin user" - method_option :super, :type => :boolean, :aliases => "-S", :desc => "register as a super admin" - method_option :scheme, :type => :string, :aliases => "-s", :desc => "password scheme" + method_option :super, type: :boolean, aliases: "-S", desc: "register as a super admin" + method_option :scheme, type: :string, aliases: "-s", desc: "password scheme" def add_admin(user_name, password) runner do if options[:scheme] == 'scheme' warn "Specify password scheme" help('add_admin') @@ -144,21 +148,21 @@ end end desc "add_admin_domain admin@example.com example.com", "Add admin_domain" def add_admin_domain(user_name, domain_name) - runner{ @cli.add_admin_domain(user_name, domain_name) } + runner { @cli.add_admin_domain(user_name, domain_name) } end desc "delete_admin_domain admin@example.com example.com", "Delete admin_domain" def delete_admin_domain(user_name, domain_name) - runner{ @cli.delete_admin_domain(user_name, domain_name) } + runner { @cli.delete_admin_domain(user_name, domain_name) } end desc "edit_alias alias@example.com", "Edit an alias" - method_option :goto, :type => :string, :aliases => "-g", - :desc => "mailboxes, addresses e-mails are delivered to" + method_option :goto, type: :string, aliases: "-g", + desc: "mailboxes, addresses e-mails are delivered to" method_option :active, type: :boolean, desc: "Update active status" def edit_alias(address) runner do if options.size == 0 warn "Use one or more options." @@ -169,40 +173,39 @@ end end desc "add_alias alias@example.com goto@example.net", "Add an alias" def add_alias(address, goto) - runner{ @cli.add_alias(address, goto) } + runner { @cli.add_alias(address, goto) } end desc "delete_alias alias@example.com", "Delete an alias" def delete_alias(address) - runner{ @cli.delete_alias(address) } + runner { @cli.delete_alias(address) } end desc "log", "Show action logs" def log - runner{ @cli.log } + runner { @cli.log } end desc "dump", "Dump all data" def dump - runner{ @cli.dump } + runner { @cli.dump } end desc "version", "Show postfix_admin version" def version require 'postfix_admin/version' - runner{ say "postfix_admin #{VERSION}" } + runner { say "postfix_admin #{VERSION}" } end private def runner - begin - yield - rescue Error, ArgumentError => e - abort e.message - end + @cli.db_setup + yield + rescue StandardError => e + abort "Error: #{e.message}" end end end