diff -r 0d2430dc6ef8 -r f8d5c8bb8bce VirtualMailManager/cli/subcommands.py --- a/VirtualMailManager/cli/subcommands.py Fri Aug 06 06:14:04 2010 +0000 +++ b/VirtualMailManager/cli/subcommands.py Fri Aug 06 22:34:46 2010 +0000 @@ -17,6 +17,7 @@ from VirtualMailManager import ENCODING from VirtualMailManager.account import SERVICES from VirtualMailManager.cli import get_winsize, prog, w_err, w_std +from VirtualMailManager.common import version_str from VirtualMailManager.constants import __copyright__, __date__, \ __version__, ACCOUNT_EXISTS, ALIAS_EXISTS, ALIASDOMAIN_ISDOMAIN, \ DOMAIN_ALIAS_EXISTS, INVALID_ARGUMENT, EX_MISSING_ARGS, RELOCATED_EXISTS @@ -25,11 +26,11 @@ __all__ = ( 'Command', 'RunContext', 'cmd_map', 'usage', 'alias_add', 'alias_delete', 'alias_info', 'aliasdomain_add', 'aliasdomain_delete', 'aliasdomain_info', - 'aliasdomain_switch', 'configure', 'domain_add', 'domain_delete', - 'domain_info', 'domain_transport', 'get_user', 'help_', 'list_domains', - 'relocated_add', 'relocated_delete', 'relocated_info', 'user_add', - 'user_delete', 'user_disable', 'user_enable', 'user_info', 'user_name', - 'user_password', 'user_transport', 'version', + 'aliasdomain_switch', 'config_get', 'config_set', 'configure', + 'domain_add', 'domain_delete', 'domain_info', 'domain_transport', + 'get_user', 'help_', 'list_domains', 'relocated_add', 'relocated_delete', + 'relocated_info', 'user_add', 'user_delete', 'user_disable', 'user_enable', + 'user_info', 'user_name', 'user_password', 'user_transport', 'version', ) _ = lambda msg: msg @@ -169,6 +170,27 @@ ctx.hdlr.aliasdomain_switch(ctx.args[2].lower(), ctx.args[3].lower()) +def config_get(ctx): + """show the actual value of the configuration option""" + if ctx.argc < 3: + usage(EX_MISSING_ARGS, _(u"Missing option name."), ctx.scmd) + option = ctx.args[2].lower() + if option != 'misc.dovecot_version': + w_std('%s = %s' % (option, ctx.cget(option))) + else: + w_std('%s = %s' % (option, version_str(ctx.cget(option)))) + + +def config_set(ctx): + """set a new value for the configuration option""" + if ctx.argc < 3: + usage(EX_MISSING_ARGS, _(u'Missing option and new value.'), ctx.scmd) + if ctx.argc < 4: + usage(EX_MISSING_ARGS, _(u'Missing new configuration value.'), + ctx.scmd) + ctx.hdlr.cfg_set(ctx.args[2].lower(), ctx.args[3]) + + def configure(ctx): """start interactive configuration modus""" if ctx.argc < 3: @@ -577,6 +599,10 @@ 'relocatedinfo': cmd('relocatedinfo', 'ri', relocated_info, 'address', _(u'print information about a relocated user')), # cli commands + 'configget': cmd('configget', 'cg', config_get, 'option', + _('show the actual value of the configuration option')), + 'configset': cmd('configset', 'cs', config_set, 'option value', + _('set a new value for the configuration option')), 'configure': cmd('configure', 'cf', configure, '[section]', _(u'start interactive configuration modus')), 'help': cmd('help', 'h', help_, '[subcommand]',