lib/postfix_admin/runner.rb in postfix_admin-0.3.0 vs lib/postfix_admin/runner.rb in postfix_admin-0.3.1

- old
+ new

@@ -28,25 +28,70 @@ "Display details about domains, admins, or accounts" def show(name = nil) runner { @cli.show(name) } end - desc "setup example.com password", "Set up a domain" + desc "admins", "List all admin users" + def admins + runner { @cli.show_admins } + end + + desc "domains", "List all domains" + def domains + runner { @cli.show_domains } + end + + desc "accounts", "List all accounts" + def accounts + runner { @cli.show_accounts } + end + + desc "aliases", "List all aliases" + def aliases + runner { @cli.show_aliases } + end + + desc "forwards", "List all forwards" + def forwards + runner { @cli.show_forwards } + end + + desc "setup example.com password", "Set up a domain (add a domain and an admin user for it)" + method_option :scheme, type: :string, aliases: "-s", desc: "password scheme" + method_option :rounds, type: :string, aliases: "-r", desc: "encryption rounds for BLF-CRYPT, SHA256-CRYPT and SHA512-CRYPT schemes" def setup(domain_name, password) - runner { @cli.setup_domain(domain_name, password) } + runner do + @cli.setup_domain(domain_name, password, + scheme: options[:scheme], rounds: options[:rounds]) + end end + desc "teardown example.com", "Tear down a domain (delete a domain and an admin user for it)" + def teardown(domain_name) + runner { @cli.teardown_domain(domain_name) } + end + desc "admin_passwd admin@example.com new_password", "Change the password of an admin user" + method_option :scheme, type: :string, aliases: "-s", desc: "password scheme" + method_option :rounds, type: :string, aliases: "-r", desc: "encryption rounds for BLF-CRYPT, SHA256-CRYPT and SHA512-CRYPT schemes" def admin_passwd(user_name, password) - runner { @cli.change_admin_password(user_name, password) } + runner do + @cli.change_admin_password(user_name, password, + scheme: options[:scheme], rounds: options[:rounds]) + end end desc "account_passwd user@example.com new_password", "Change the password of an account" + method_option :scheme, type: :string, aliases: "-s", desc: "password scheme" + method_option :rounds, type: :string, aliases: "-r", desc: "encryption rounds for BLF-CRYPT, SHA256-CRYPT and SHA512-CRYPT schemes" def account_passwd(user_name, password) - runner { @cli.change_account_password(user_name, password) } + runner do + @cli.change_account_password(user_name, password, + scheme: options[:scheme], rounds: options[:rounds]) + end end desc "add_domain example.com", "Add a new domain" method_option :description, type: :string, aliases: "-d", desc: "description" def add_domain(domain_name) @@ -84,23 +129,25 @@ def delete_account(address) runner { @cli.delete_account(address) } end desc "add_account user@example.com password", "Add a new 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 :rounds, type: :string, aliases: "-r", desc: "encryption rounds for BLF-CRYPT, SHA256-CRYPT and SHA512-CRYPT schemes" def add_account(address, password) runner do if options[:scheme] == 'scheme' warn "Specify password scheme" help('add_account') else if options[:name] == 'name' warn "Specify name" help('add_account') else - @cli.add_account(address, password, options[:scheme], options[:name]) + @cli.add_account(address, password, name: options[:name], + scheme: options[:scheme], rounds: options[:rounds]) end end end end @@ -144,16 +191,19 @@ end desc "add_admin admin@example.com password", "Add a new 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 :rounds, type: :string, aliases: "-r", desc: "encryption rounds for BLF-CRYPT, SHA256-CRYPT and SHA512-CRYPT schemes" def add_admin(user_name, password) runner do if options[:scheme] == 'scheme' warn "Specify password scheme" help('add_admin') else - @cli.add_admin(user_name, password, options[:super], options[:scheme]) + @cli.add_admin(user_name, password, + super_admin: options[:super], scheme: options[:scheme], + rounds: options[:rounds]) end end end desc "add_admin_domain admin@example.com example.com",