|     31  |     31  | 
|     32 def usage(excode=0, errMsg=None): |     32 def usage(excode=0, errMsg=None): | 
|     33     sys.stderr.write(_("""\ |     33     sys.stderr.write(_("""\ | 
|     34 Usage: %s SUBCOMMAND OBJECT ARGS* |     34 Usage: %s SUBCOMMAND OBJECT ARGS* | 
|     35   short long |     35   short long | 
|     36   subcommand            object           args (* = optional)\n\n""")% __prog__) |     36   subcommand               object            args (* = optional)\n\n""")% | 
|         |     37   __prog__) | 
|     37     sys.stderr.write("""\ |     38     sys.stderr.write("""\ | 
|     38   da    domainadd       domain.tld       transport* |     39   da    domainadd          domain.tld        transport* | 
|     39   di    domaininfo      domain.tld       detailed* |     40   di    domaininfo         domain.tld        detailed* | 
|     40   dt    domaintransport domain.tld       transport force* |     41   dt    domaintransport    domain.tld        transport force* | 
|     41   dd    domaindelete    domain.tld       delalias*|deluser*|delall* |     42   dd    domaindelete       domain.tld        delalias*|deluser*|delall* | 
|     42   ua    useradd         user@domain.tld  password* |     43   daa   domainaliasadd     aliasdomain.tld   domain.tld | 
|     43   ui    userinfo        user@domain.tld  du* |     44   dad   domainaliasdelete  aliasdomain.tld | 
|     44   un    username        user@domain.tld  'Users Name' |     45   ua    useradd            user@domain.tld   password* | 
|     45   up    userpassword    user@domain.tld  password* |     46   ui    userinfo           user@domain.tld   du* | 
|     46   ut    usertransport   user@domain.tld  transport |     47   un    username           user@domain.tld   'Users Name' | 
|     47   u0    userdisable     user@domain.tld  smtp*|pop3*|imap*|managesieve*|all* |     48   up    userpassword       user@domain.tld   password* | 
|     48   u1    userenable      user@domain.tld  smtp*|pop3*|imap*|managesieve*|all* |     49   ut    usertransport      user@domain.tld   transport | 
|     49   ud    userdelete      user@domain.tld |     50   u0    userdisable        user@domain.tld   smtp*|pop3*|imap*|managesieve*|all* | 
|     50   aa    aliasadd        alias@domain.tld user@domain.tld |     51   u1    userenable         user@domain.tld   smtp*|pop3*|imap*|managesieve*|all* | 
|     51   ai    aliasinfo       alias@domain.tld |     52   ud    userdelete         user@domain.tld | 
|     52   ad    aliasdelete     alias@domain.tld user@domain.tld* |     53   aa    aliasadd           alias@domain.tld  user@domain.tld | 
|     53   gu    getuser         userid |     54   ai    aliasinfo          alias@domain.tld | 
|     54   ld    listdomains                      pattern* |     55   ad    aliasdelete        alias@domain.tld  user@domain.tld* | 
|     55   cf    configure                        section* |     56   gu    getuser            userid | 
|         |     57   ld    listdomains                          pattern* | 
|         |     58   cf    configure                            section* | 
|     56   h     help |     59   h     help | 
|     57   v     version |     60   v     version | 
|     58  |     61  | 
|     59 """) |     62 """) | 
|     60     if not errMsg is None: |     63     if not errMsg is None: | 
|    115  |    118  | 
|    116 def _printList(alist, title): |    119 def _printList(alist, title): | 
|    117     msg = '%s %s' % (_('Available'), title) |    120     msg = '%s %s' % (_('Available'), title) | 
|    118     print '%s\n%s' % (msg, '-'*len(msg)) |    121     print '%s\n%s' % (msg, '-'*len(msg)) | 
|    119     if len(alist) > 0: |    122     if len(alist) > 0: | 
|    120         for val in alist: |    123         if title != _('alias domains'): | 
|    121             print '\t%s' % val |    124             for val in alist: | 
|         |    125                 print '\t%s' % val | 
|         |    126         else: | 
|         |    127             for dom in alist: | 
|         |    128                 if not dom.startswith('xn--'): | 
|         |    129                     print '\t%s' % dom | 
|         |    130                 else: | 
|         |    131                     print '\t%s (%s)' % (dom, vmm.ace2idna(dom)) | 
|    122     else: |    132     else: | 
|    123         print _('\tNone') |    133         print _('\tNone') | 
|    124     print |    134     print | 
|    125  |    135  | 
|    126 def _printAliases(alias, targets): |    136 def _printAliases(alias, targets): | 
|    140     if main: |    150     if main: | 
|    141         return '\t[+] %s' %  domain |    151         return '\t[+] %s' %  domain | 
|    142     else: |    152     else: | 
|    143         return '\t[-]     %s' % domain |    153         return '\t[-]     %s' % domain | 
|    144  |    154  | 
|    145  |         | 
|    146 def _printDomList(dids, domains): |    155 def _printDomList(dids, domains): | 
|    147     if argc < 3: |    156     if argc < 3: | 
|    148         msg = _('Available domains') |    157         msg = _('Available domains') | 
|    149     else: |    158     else: | 
|    150         msg = _('Matching domains') |    159         msg = _('Matching domains') | 
|    195         usage(EXIT.MISSING_ARGS, _('Missing new transport.')) |    204         usage(EXIT.MISSING_ARGS, _('Missing new transport.')) | 
|    196     elif argc < 5: |    205     elif argc < 5: | 
|    197         vmm.domain_transport(sys.argv[2].lower(), sys.argv[3]) |    206         vmm.domain_transport(sys.argv[2].lower(), sys.argv[3]) | 
|    198     else: |    207     else: | 
|    199         vmm.domain_transport(sys.argv[2].lower(), sys.argv[3], sys.argv[4]) |    208         vmm.domain_transport(sys.argv[2].lower(), sys.argv[3], sys.argv[4]) | 
|         |    209  | 
|         |    210 def domain_alias_add(): | 
|         |    211     if argc < 3: | 
|         |    212         usage(EXIT.MISSING_ARGS, | 
|         |    213                 _('Missing alias domain name and target domain name.')) | 
|         |    214     elif argc < 4: | 
|         |    215         usage(EXIT.MISSING_ARGS, _('Missing target domain name.')) | 
|         |    216     else: | 
|         |    217         vmm.domain_alias_add(sys.argv[2].lower(), sys.argv[3].lower()) | 
|         |    218  | 
|         |    219 def domain_alias_delete(): | 
|         |    220     if argc < 3: | 
|         |    221         usage(EXIT.MISSING_ARGS, _('Missing alias domain name.')) | 
|         |    222     else: | 
|         |    223         vmm.domain_alias_delete(sys.argv[2].lower()) | 
|    200  |    224  | 
|    201 def user_add(): |    225 def user_add(): | 
|    202     if argc < 3: |    226     if argc < 3: | 
|    203         usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |    227         usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
|    204     elif argc < 4: |    228     elif argc < 4: | 
|    323             domain_info() |    347             domain_info() | 
|    324         elif sys.argv[1] in ['dt', 'domaintransport']: |    348         elif sys.argv[1] in ['dt', 'domaintransport']: | 
|    325             domain_transport() |    349             domain_transport() | 
|    326         elif sys.argv[1] in ['dd', 'domaindelete']: |    350         elif sys.argv[1] in ['dd', 'domaindelete']: | 
|    327             domain_delete() |    351             domain_delete() | 
|         |    352         elif sys.argv[1] in ['daa', 'domainaliasadd']: | 
|         |    353             domain_alias_add() | 
|         |    354         elif sys.argv[1] in ['dad', 'domainaliasdelete']: | 
|         |    355             domain_alias_delete() | 
|    328         elif sys.argv[1] in ['ua', 'useradd']: |    356         elif sys.argv[1] in ['ua', 'useradd']: | 
|    329             user_add() |    357             user_add() | 
|    330         elif sys.argv[1] in ['ui', 'userinfo']: |    358         elif sys.argv[1] in ['ui', 'userinfo']: | 
|    331             user_info() |    359             user_info() | 
|    332         elif sys.argv[1] in ['un', 'username']: |    360         elif sys.argv[1] in ['un', 'username']: |