[enh] better support for multiple valued arguments

This commit is contained in:
Julien Malik 2016-11-16 17:04:20 +01:00
parent cf9284e9f2
commit 1bc605561a
2 changed files with 6 additions and 2 deletions

View file

@ -274,10 +274,12 @@ alias:
help: Alias to update
--add-mailforward:
help: List of mailforward addresses to add, separated by commas without space
nargs: "*"
extra:
pattern: *pattern_listemail
--remove-mailforward:
help: List of mailforward addresses to remove, separated by commas without space
nargs: "*"
extra:
pattern: *pattern_listemail

View file

@ -107,13 +107,15 @@ def alias_update(auth, alias, add_mailforward=None, remove_mailforward=None):
# Get modifications from arguments
if add_mailforward:
add_mailforward = add_mailforward.split(",")
if not isinstance(add_mailforward, list):
add_mailforward = [ add_mailforward ]
for mail in add_mailforward:
if mail not in current_alias_info['maildrop']:
current_alias_info['maildrop'].append(mail)
if remove_mailforward:
remove_mailforward = remove_mailforward.split(",")
if not isinstance(add_mailforward, list):
add_mailforward = [ add_mailforward ]
for mail in remove_mailforward:
if mail in current_alias_info['maildrop'][1:]:
current_alias_info['maildrop'].remove(mail)