| author | Pascal Volk <neverseen@users.sourceforge.net> | 
| Sun, 25 May 2008 03:42:42 +0000 | |
| changeset 35 | 22cc616aef61 | 
| parent 34 | 6d74e20c5b3b | 
| child 38 | c44ea4526546 | 
| permissions | -rwxr-xr-x | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 1 | #!/usr/bin/env python | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 2 | # -*- coding: UTF-8 -*- | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 3 | # Copyright 2007-2008 VEB IT | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 4 | # See COPYING for distribution information. | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 5 | # $Id$ | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 6 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 7 | """This is the vmm main script.""" | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 8 | |
| 4 | 9 | from VirtualMailManager.constants.VERSION import VERSION | 
| 10 | ||
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 11 | __author__ = 'Pascal Volk <p.volk@veb-it.de>' | 
| 4 | 12 | __version__ = VERSION | 
| 13 | __revision__ = 'rev '+'$Rev$'.split()[1] | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 14 | __date__ = '$Date$'.split()[1] | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 15 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 16 | import os | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 17 | import sys | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 18 | import gettext | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 19 | from getpass import getpass | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 20 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 21 | from VirtualMailManager.VirtualMailManager import VirtualMailManager | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 22 | from VirtualMailManager.Config import VMMConfig | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 23 | import VirtualMailManager.Exceptions as VMME | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 24 | import VirtualMailManager.constants.EXIT as EXIT | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 25 | import VirtualMailManager.constants.ERROR as ERR | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 26 | |
| 4 | 27 | __prog__ = os.path.basename(sys.argv[0]) | 
| 28 | ||
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 29 | gettext.bindtextdomain(__prog__, '/usr/local/share/locale') | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 30 | gettext.textdomain(__prog__) | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 31 | _ = gettext.gettext | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 32 | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 33 | def usage(excode=0, errMsg=None): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 34 | sys.stderr.write(_("""\ | 
| 22 | 35 | Usage: %s SUBCOMMAND OBJECT ARGS* | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 36 |   short long | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 37 | subcommand object args (* = optional)\n\n""")% __prog__) | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 38 | sys.stderr.write("""\ | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 39 |   da    domainadd       domain.tld       transport* | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 40 |   di    domaininfo      domain.tld       detailed* | 
| 18 
c98e08791ee8
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
17diff
changeset | 41 |   dt    domaintransport domain.tld       transport force* | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 42 |   dd    domaindelete    domain.tld       delalias*|deluser*|delall* | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 43 |   ua    useradd         user@domain.tld  password* | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 44 |   ui    userinfo        user@domain.tld  du* | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 45 |   un    username        user@domain.tld  'Users Name' | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 46 |   up    userpassword    user@domain.tld  password* | 
| 18 
c98e08791ee8
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
17diff
changeset | 47 |   ut    usertransport   user@domain.tld  transport | 
| 20 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 48 |   u0    userdisable     user@domain.tld  smtp*|pop3*|imap*|managesieve*|all* | 
| 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 49 |   u1    userenable      user@domain.tld  smtp*|pop3*|imap*|managesieve*|all* | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 50 |   ud    userdelete      user@domain.tld | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 51 |   aa    aliasadd        alias@domain.tld user@domain.tld | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 52 |   ai    aliasinfo       alias@domain.tld | 
| 12 
44161dbb1518
* 'VirtualMailManager/Alias.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
5diff
changeset | 53 |   ad    aliasdelete     alias@domain.tld user@domain.tld* | 
| 19 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 54 |   gu    getuser         userid | 
| 35 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 55 |   ld    listdomains                      pattern* | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 56 |   cf    configure                        section* | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 57 |   h     help | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 58 |   v     version | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 59 | |
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 60 | """) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 61 | if not errMsg is None: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 62 | sys.stderr.write('%s: %s\n' % (_('Error'), errMsg)) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 63 | sys.exit(excode) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 64 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 65 | def getVMM(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 66 | try: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 67 | vmm = VirtualMailManager() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 68 | return vmm | 
| 2 
9b39f828aa8a
* 'VirtualMailManager/Exceptions.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
1diff
changeset | 69 | except (VMME.VMMException, VMME.VMMNotRootException, VMME.VMMPermException, | 
| 
9b39f828aa8a
* 'VirtualMailManager/Exceptions.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
1diff
changeset | 70 | VMME.VMMConfigException), e: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 71 | sys.stderr.write("\a%s: %s\n" % (_('Error'),e[0][0])) | 
| 2 
9b39f828aa8a
* 'VirtualMailManager/Exceptions.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
1diff
changeset | 72 | sys.exit(e[0][1]) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 73 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 74 | def configure(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 75 | try: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 76 | if len(sys.argv) < 3: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 77 | vmm.configure() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 78 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 79 | vmm.configure(sys.argv[2]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 80 | except (EOFError, KeyboardInterrupt): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 81 | sys.stderr.write('\n%s!\n' % _('Ouch')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 82 | sys.exit(EXIT.USER_INTERRUPT) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 83 | except VMME.VMMConfigException, e: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 84 | sys.stderr.write(str(e)) | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 85 | sys.exit(ERR.CONF_ERROR) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 86 | sys.exit(0) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 87 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 88 | def _readpass(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 89 | clear0 = '' | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 90 | clear1 = '1' | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 91 | while clear0 != clear1: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 92 | while len(clear0) < 1: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 93 | clear0 = getpass(prompt=_('Enter new password: ')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 94 | if len(clear0) < 1: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 95 | sys.stderr.write('%s\n' | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 96 | % _('Sorry, empty passwords are not permitted')) | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 97 | clear1 = getpass(prompt=_('Retype new password: ')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 98 | if clear0 != clear1: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 99 | clear0 = '' | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 100 | sys.stderr.write('%s\n' % _('Sorry, passwords do not match')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 101 | return clear0 | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 102 | |
| 26 | 103 | def _getOrder(): | 
| 104 | order = () | |
| 105 | if sys.argv[1] in ['di', 'domaininfo']: | |
| 106 | order = (('domainname', 0), ('gid', 1), ('transport', 0), | |
| 107 | ('domaindir', 0), ('accounts', 0), ('aliases', 0)) | |
| 108 | elif sys.argv[1] in ['ui', 'userinfo']: | |
| 109 | if argc == 3: | |
| 110 | order = (('address', 0), ('name', 0), ('uid', 1), ('gid', 1), | |
| 111 | ('transport', 0), ('maildir', 0), ('smtp', 1), ('pop3', 1), | |
| 112 | ('imap', 1), ('managesieve', 1)) | |
| 113 | else: | |
| 114 | order = (('address', 0), ('name', 0), ('uid', 1), ('gid', 1), | |
| 115 | ('transport', 0), ('maildir', 0), ('disk usage', 0), | |
| 116 | ('smtp', 1), ('pop3', 1), ('imap', 1), ('managesieve', 1)) | |
| 117 | elif sys.argv[1] in ['gu', 'getuser']: | |
| 118 | order = (('uid', 1), ('gid', 1), ('address', 0)) | |
| 119 | return order | |
| 120 | ||
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 121 | def _printInfo(info, title): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 122 | msg = '%s %s' % (title, _('information')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 123 | print '%s\n%s' % (msg, '-'*len(msg)) | 
| 26 | 124 | for k,u in _getOrder(): | 
| 125 | if u: | |
| 126 | print '\t%s: %s' % (k.upper().ljust(15, '.'), info[k]) | |
| 127 | else: | |
| 128 | print '\t%s: %s' % (k.title().ljust(15, '.'), info[k]) | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 129 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 130 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 131 | def _printUsers(users, title): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 132 | msg = '%s %s' % (_('Available'), title) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 133 | print '%s\n%s' % (msg, '-'*len(msg)) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 134 | if len(users) > 0: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 135 | for user in users: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 136 | print '\t%s' % user | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 137 | else: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 138 | print _('\tNone') | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 139 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 140 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 141 | def _printAliases(alias, targets): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 142 | msg = _('Alias information') | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 143 | print '%s\n%s' % (msg, '-'*len(msg)) | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 144 | print _('\tMail for %s goes to:') % alias | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 145 | if len(targets) > 0: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 146 | for target in targets: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 147 | print '\t -> %s' % target | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 148 | else: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 149 | print _('\tNone') | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 150 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 151 | |
| 35 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 152 | def _printDomList(domains): | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 153 | if argc < 3: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 154 | msg = _('Available domains') | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 155 | else: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 156 | msg = _('Matching domains') | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 157 | print '%s\n%s' % (msg, '-'*len(msg)) | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 158 | if not len(domains): | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 159 | print _('\tNone') | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 160 | else: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 161 | for domain in domains: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 162 | d = domain[0] | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 163 | if not d.startswith('xn--'): | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 164 | print '\t%s' % d | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 165 | else: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 166 | print "\t%s (%s)" % (d, vmm.ace2idna(d)) | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 167 | |
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 168 | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 169 | def domain_add(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 170 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 171 | usage(EXIT.MISSING_ARGS, _('Missing domain name.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 172 | elif argc < 4: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 173 | vmm.domain_add(sys.argv[2].lower()) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 174 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 175 | vmm.domain_add(sys.argv[2].lower(), sys.argv[3]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 176 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 177 | def domain_delete(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 178 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 179 | usage(EXIT.MISSING_ARGS, _('Missing domain name.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 180 | elif argc < 4: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 181 | vmm.domain_delete(sys.argv[2].lower()) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 182 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 183 | vmm.domain_delete(sys.argv[2].lower(), sys.argv[3]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 184 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 185 | def domain_info(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 186 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 187 | usage(EXIT.MISSING_ARGS, _('Missing domain name.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 188 | elif argc < 4: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 189 | _printInfo(vmm.domain_info(sys.argv[2].lower()), 'Domain') | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 190 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 191 | infos = vmm.domain_info(sys.argv[2].lower(), sys.argv[3]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 192 | _printInfo(infos[0], 'Domain') | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 193 | _printUsers(infos[1], _('accounts')) | 
| 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 194 | _printUsers(infos[2], _('aliases')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 195 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 196 | def domain_transport(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 197 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 198 | usage(EXIT.MISSING_ARGS, _('Missing domain name and new transport.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 199 | if argc < 4: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 200 | usage(EXIT.MISSING_ARGS, _('Missing new transport.')) | 
| 18 
c98e08791ee8
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
17diff
changeset | 201 | elif argc < 5: | 
| 
c98e08791ee8
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
17diff
changeset | 202 | vmm.domain_transport(sys.argv[2].lower(), sys.argv[3]) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 203 | else: | 
| 18 
c98e08791ee8
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
17diff
changeset | 204 | vmm.domain_transport(sys.argv[2].lower(), sys.argv[3], sys.argv[4]) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 205 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 206 | def user_add(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 207 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 208 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 209 | elif argc < 4: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 210 | password = _readpass() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 211 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 212 | password = sys.argv[3] | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 213 | vmm.user_add(sys.argv[2].lower(), password) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 214 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 215 | def user_delete(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 216 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 217 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 218 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 219 | vmm.user_delete(sys.argv[2].lower()) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 220 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 221 | def user_info(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 222 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 223 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 224 | elif argc < 4: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 225 | _printInfo(vmm.user_info(sys.argv[2].lower()), 'Account') | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 226 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 227 | _printInfo(vmm.user_info(sys.argv[2].lower(), True), 'Account') | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 228 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 229 | def user_name(): | 
| 2 
9b39f828aa8a
* 'VirtualMailManager/Exceptions.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
1diff
changeset | 230 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 231 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address and users name.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 232 | if argc < 4: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 233 | usage(EXIT.MISSING_ARGS, _('Missing users name.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 234 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 235 | vmm.user_name(sys.argv[2].lower(), sys.argv[3]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 236 | |
| 17 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 237 | def user_transport(): | 
| 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 238 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 239 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address and transport.')) | 
| 17 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 240 | if argc <4: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 241 | usage(EXIT.MISSING_ARGS, _('Missing transport.')) | 
| 17 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 242 | else: | 
| 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 243 | vmm.user_transport(sys.argv[2].lower(), sys.argv[3]) | 
| 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 244 | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 245 | def user_enable(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 246 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 247 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
| 20 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 248 | elif argc < 4: | 
| 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 249 | vmm.user_enable(sys.argv[2].lower()) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 250 | else: | 
| 20 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 251 | vmm.user_enable(sys.argv[2].lower(), sys.argv[3].lower()) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 252 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 253 | def user_disable(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 254 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 255 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
| 20 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 256 | elif argc < 4: | 
| 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 257 | vmm.user_disable(sys.argv[2].lower()) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 258 | else: | 
| 20 
55146c78b3fb
* 'create_tables.pgsql'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
19diff
changeset | 259 | vmm.user_disable(sys.argv[2].lower(), sys.argv[3].lower()) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 260 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 261 | def user_password(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 262 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 263 | usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 264 | elif argc < 4: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 265 | password = _readpass() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 266 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 267 | password = sys.argv[3] | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 268 | vmm.user_password(sys.argv[2].lower(), password) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 269 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 270 | def alias_add(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 271 | if argc < 4: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 272 | usage(EXIT.MISSING_ARGS, _('Missing alias address and destination.')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 273 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 274 | vmm.alias_add(sys.argv[2].lower(), sys.argv[3]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 275 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 276 | def alias_info(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 277 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 278 | usage(EXIT.MISSING_ARGS, _('Missing alias address')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 279 | else: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 280 | _printAliases(sys.argv[2], vmm.alias_info(sys.argv[2].lower())) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 281 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 282 | def alias_delete(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 283 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 284 | usage(EXIT.MISSING_ARGS, _('Missing alias address')) | 
| 12 
44161dbb1518
* 'VirtualMailManager/Alias.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
5diff
changeset | 285 | elif argc < 4: | 
| 
44161dbb1518
* 'VirtualMailManager/Alias.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
5diff
changeset | 286 | vmm.alias_delete(sys.argv[2].lower()) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 287 | else: | 
| 12 
44161dbb1518
* 'VirtualMailManager/Alias.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
5diff
changeset | 288 | vmm.alias_delete(sys.argv[2].lower(), sys.argv[3].lower()) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 289 | |
| 19 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 290 | def user_byID(): | 
| 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 291 | if argc < 3: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 292 | usage(EXIT.MISSING_ARGS, _('Missing userid')) | 
| 19 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 293 | else: | 
| 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 294 | _printInfo(vmm.user_byID(sys.argv[2]), 'Account') | 
| 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 295 | |
| 35 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 296 | def domain_list(): | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 297 | if argc < 3: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 298 | _printDomList(vmm.domain_list()) | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 299 | else: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 300 | _printDomList(vmm.domain_list(sys.argv[2].lower())) | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 301 | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 302 | def showWarnings(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 303 | if vmm.hasWarnings(): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 304 | print _('\nWarnings:') | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 305 | for w in vmm.getWarnings(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 306 | print " * ",w | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 307 | |
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 308 | #def main(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 309 | if __name__ == '__main__': | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 310 | argc = len(sys.argv) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 311 | if argc < 2: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 312 | usage(EXIT.MISSING_ARGS) # -> exit | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 313 | vmm = getVMM() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 314 | try: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 315 | if sys.argv[1] in ['cf', 'configure'] or not vmm.setupIsDone(): | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 316 | configure() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 317 | except VMME.VMMConfigException, e: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 318 | sys.stderr.write(str(e)) | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 319 | sys.exit(ERR.CONF_ERROR) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 320 | except VMME.VMMException, e: | 
| 34 
6d74e20c5b3b
* 'VirtualMailManager/Account.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
32diff
changeset | 321 | sys.stderr.write("\a%s: %s\n" % (_('Error'), e[0][0])) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 322 | sys.exit(e[0][1]) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 323 | try: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 324 | if sys.argv[1] in ['da', 'domainadd']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 325 | domain_add() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 326 | elif sys.argv[1] in ['di', 'domaininfo']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 327 | domain_info() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 328 | elif sys.argv[1] in ['dt', 'domaintransport']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 329 | domain_transport() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 330 | elif sys.argv[1] in ['dd', 'domaindelete']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 331 | domain_delete() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 332 | elif sys.argv[1] in ['ua', 'useradd']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 333 | user_add() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 334 | elif sys.argv[1] in ['ui', 'userinfo']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 335 | user_info() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 336 | elif sys.argv[1] in ['un', 'username']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 337 | user_name() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 338 | elif sys.argv[1] in ['up', 'userpassword']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 339 | user_password() | 
| 17 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 340 | elif sys.argv[1] in ['ut', 'usertransport']: | 
| 
fe9be0081e5f
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
12diff
changeset | 341 | user_transport() | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 342 | elif sys.argv[1] in ['u0', 'userdisable']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 343 | user_disable() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 344 | elif sys.argv[1] in ['u1', 'userenable']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 345 | user_enable() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 346 | elif sys.argv[1] in ['ud', 'userdelete']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 347 | user_delete() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 348 | elif sys.argv[1] in ['aa', 'aliasadd']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 349 | alias_add() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 350 | elif sys.argv[1] in ['ai', 'aliasinfo']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 351 | alias_info() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 352 | elif sys.argv[1] in ['ad', 'aliasdelete']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 353 | alias_delete() | 
| 19 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 354 | elif sys.argv[1] in ['gu', 'getuser']: | 
| 
bf9a03c476fc
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
18diff
changeset | 355 | user_byID() | 
| 35 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 356 | elif sys.argv[1] in ['ld', 'listdomains']: | 
| 
22cc616aef61
* 'VirtualMailManager/VirtualMailManager.py'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
34diff
changeset | 357 | domain_list() | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 358 | elif sys.argv[1] in ['h', 'help']: | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 359 | usage() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 360 | elif sys.argv[1] in ['v', 'version']: | 
| 4 | 361 | print "%s, version %s (%s from %s)\n" % (__prog__, __version__, | 
| 362 | __revision__, __date__) | |
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 363 | else: | 
| 22 | 364 | usage(EXIT.UNKNOWN_COMMAND, | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 365 | '%s: »%s«' % (_('Unknown subcommand'), sys.argv[1])) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 366 | showWarnings() | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 367 | except (EOFError, KeyboardInterrupt): | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 368 | sys.stderr.write('\n%s!\n' % _('Ouch')) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 369 | sys.exit(EXIT.USER_INTERRUPT) | 
| 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 370 | except VMME.VMMException, e: | 
| 32 
ceb700bc4a80
* 'install.sh'
 Pascal Volk <neverseen@users.sourceforge.net> parents: 
26diff
changeset | 371 | sys.stderr.write("\a%s: %s\n" % (_('Error'), e[0][0])) | 
| 0 
bb0aa2102206
Initial import @sf.net
 Pascal Volk <neverseen@users.sourceforge.net> parents: diff
changeset | 372 | sys.exit(e[0][1]) |