vmm
changeset 32 ceb700bc4a80
parent 26 668951708f2f
child 34 6d74e20c5b3b
--- a/vmm	Sat May 10 02:56:33 2008 +0000
+++ b/vmm	Tue May 13 03:20:02 2008 +0000
@@ -15,21 +15,27 @@
 
 import os
 import sys
+import gettext
 from getpass import getpass
 
 from VirtualMailManager.VirtualMailManager import VirtualMailManager
 from VirtualMailManager.Config import VMMConfig
 import VirtualMailManager.Exceptions as VMME
 import VirtualMailManager.constants.EXIT as EXIT
+import VirtualMailManager.constants.ERROR as ERR
 
 __prog__ = os.path.basename(sys.argv[0])
 
+gettext.bindtextdomain(__prog__, '/usr/local/share/locale')
+gettext.textdomain(__prog__)
+_ = gettext.gettext
+
 def usage(excode=0, errMsg=None):
-    sys.stderr.write("""\
+    sys.stderr.write(_("""\
 Usage: %s SUBCOMMAND OBJECT ARGS*
   short long
-  subcommand            object           args (* = optional)
-
+  subcommand            object           args (* = optional)\n\n""")% __prog__)
+    sys.stderr.write("""\
   da    domainadd       domain.tld       transport*
   di    domaininfo      domain.tld       detailed*
   dt    domaintransport domain.tld       transport force*
@@ -50,9 +56,9 @@
   h     help
   v     version
 
-""" % __prog__)
+""")
     if not errMsg is None:
-        sys.stderr.write('Error: %s\n' % errMsg)
+        sys.stderr.write('%s: %s\n' % (_('Error'), errMsg))
     sys.exit(excode)
 
 def getVMM():
@@ -61,7 +67,7 @@
         return vmm
     except (VMME.VMMException, VMME.VMMNotRootException, VMME.VMMPermException,
             VMME.VMMConfigException), e:
-        sys.stderr.write("\aERROR: %s\n" % e[0][0])
+        sys.stderr.write("\a%s: %s\n" % (_('Error'),e[0][0]))
         sys.exit(e[0][1])
 
 def configure():
@@ -71,11 +77,11 @@
         else:
             vmm.configure(sys.argv[2])
     except (EOFError, KeyboardInterrupt):
-        sys.stderr.write('\nOuch!\n')
+        sys.stderr.write('\n%s!\n' % _('Ouch'))
         sys.exit(EXIT.USER_INTERRUPT)
     except VMME.VMMConfigException, e:
         sys.stderr.write(str(e))
-        sys.exit(EXIT.CONF_ERROR)
+        sys.exit(ERR.CONF_ERROR)
     sys.exit(0)
 
 def _readpass():
@@ -83,13 +89,14 @@
     clear1 = '1'
     while clear0 != clear1:
         while len(clear0) < 1:
-            clear0 = getpass(prompt='Enter new password: ')
+            clear0 = getpass(prompt=_('Enter new password: '))
             if len(clear0) < 1:
-                sys.stderr.write('Sorry, empty passwords are not permitted\n')
-        clear1 = getpass(prompt='Retype new password: ')
+                sys.stderr.write('%s\n'
+                        % _('Sorry, empty passwords are not permitted'))
+        clear1 = getpass(prompt=_('Retype new password: '))
         if clear0 != clear1:
             clear0 = ''
-            sys.stderr.write('Sorry, passwords do not match\n')
+            sys.stderr.write('%s\n' % _('Sorry, passwords do not match'))
     return clear0
 
 def _getOrder():
@@ -113,7 +120,7 @@
 
 
 def _printInfo(info, title):
-    msg = title+' information'
+    msg = '%s %s' % (title, _('information'))
     print '%s\n%s' % (msg, '-'*len(msg))
     for k,u in _getOrder():
         if u:
@@ -123,30 +130,30 @@
     print
 
 def _printUsers(users, title):
-    msg = 'Available '+title
+    msg = '%s %s' % (_('Available'), title)
     print '%s\n%s' % (msg, '-'*len(msg))
     if len(users) > 0:
         for user in users:
             print '\t%s' % user
     else:
-        print '\tNone'
+        print _('\tNone')
     print
 
 def _printAliases(alias, targets):
-    msg = 'Alias information'
+    msg = _('Alias information')
     print '%s\n%s' % (msg, '-'*len(msg))
-    print '\tMail for %s goes to:' % alias
+    print _('\tMail for %s goes to:') % alias
     if len(targets) > 0:
         for target in targets:
             print '\t     -> %s' % target
     else:
-        print '\tNone'
+        print _('\tNone')
     print
 
 def domain_add():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing domain name.')
+        usage(EXIT.MISSING_ARGS, _('Missing domain name.'))
     elif argc < 4:
         vmm.domain_add(sys.argv[2].lower())
     else:
@@ -155,7 +162,7 @@
 def domain_delete():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing domain name.')
+        usage(EXIT.MISSING_ARGS, _('Missing domain name.'))
     elif argc < 4:
         vmm.domain_delete(sys.argv[2].lower())
     else:
@@ -164,21 +171,21 @@
 def domain_info():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing domain name.')
+        usage(EXIT.MISSING_ARGS, _('Missing domain name.'))
     elif argc < 4:
         _printInfo(vmm.domain_info(sys.argv[2].lower()), 'Domain')
     else:
         infos = vmm.domain_info(sys.argv[2].lower(), sys.argv[3])
         _printInfo(infos[0], 'Domain')
-        _printUsers(infos[1], 'accounts')
-        _printUsers(infos[2], 'aliases')
+        _printUsers(infos[1], _('accounts'))
+        _printUsers(infos[2], _('aliases'))
 
 def domain_transport():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing domain name and new transport.')
+        usage(EXIT.MISSING_ARGS, _('Missing domain name and new transport.'))
     if argc < 4:
-        usage(EXIT.MISSING_ARGS, 'Missing new transport.')
+        usage(EXIT.MISSING_ARGS, _('Missing new transport.'))
     elif argc < 5:
         vmm.domain_transport(sys.argv[2].lower(), sys.argv[3])
     else:
@@ -187,7 +194,7 @@
 def user_add():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
         password = _readpass()
     else:
@@ -197,14 +204,14 @@
 def user_delete():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     else:
         vmm.user_delete(sys.argv[2].lower())
 
 def user_info():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
         _printInfo(vmm.user_info(sys.argv[2].lower()), 'Account')
     else:
@@ -213,25 +220,25 @@
 def user_name():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address and users name.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address and users name.'))
     if argc < 4:
-        usage(EXIT.MISSING_ARGS, 'Missing users name.')
+        usage(EXIT.MISSING_ARGS, _('Missing users name.'))
     else:
         vmm.user_name(sys.argv[2].lower(), sys.argv[3])
 
 def user_transport():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address and transport.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address and transport.'))
     if argc <4:
-        usage(EXIT.MISSING_ARGS, 'Missing transport.')
+        usage(EXIT.MISSING_ARGS, _('Missing transport.'))
     else:
         vmm.user_transport(sys.argv[2].lower(), sys.argv[3])
 
 def user_enable():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
         vmm.user_enable(sys.argv[2].lower())
     else:
@@ -240,7 +247,7 @@
 def user_disable():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
         vmm.user_disable(sys.argv[2].lower())
     else:
@@ -249,7 +256,7 @@
 def user_password():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing e-mail address.')
+        usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
         password = _readpass()
     else:
@@ -259,21 +266,21 @@
 def alias_add():
     global argc
     if argc < 4:
-        usage(EXIT.MISSING_ARGS, 'Missing alias address and destination.')
+        usage(EXIT.MISSING_ARGS, _('Missing alias address and destination.'))
     else:
         vmm.alias_add(sys.argv[2].lower(), sys.argv[3])
 
 def alias_info():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing alias address')
+        usage(EXIT.MISSING_ARGS, _('Missing alias address'))
     else:
         _printAliases(sys.argv[2], vmm.alias_info(sys.argv[2].lower()))
 
 def alias_delete():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing alias address')
+        usage(EXIT.MISSING_ARGS, _('Missing alias address'))
     elif argc < 4:
         vmm.alias_delete(sys.argv[2].lower())
     else:
@@ -282,13 +289,13 @@
 def user_byID():
     global argc
     if argc < 3:
-        usage(EXIT.MISSING_ARGS, 'Missing userid')
+        usage(EXIT.MISSING_ARGS, _('Missing userid'))
     else:
         _printInfo(vmm.user_byID(sys.argv[2]), 'Account')
 
 def showWarnings():
     if vmm.hasWarnings():
-        print '\nWarnings:'
+        print _('\nWarnings:')
         for w in vmm.getWarnings():
             print " * ",w
 
@@ -303,7 +310,7 @@
             configure()
     except VMME.VMMConfigException, e:
         sys.stderr.write(str(e))
-        sys.exit(EXIT.CONF_ERROR)
+        sys.exit(ERR.CONF_ERROR)
     except VMME.VMMException, e:
         sys.stderr.write("\aERROR: %s\n" % e[0][0])
         sys.exit(e[0][1])
@@ -347,11 +354,11 @@
                     __revision__, __date__)
         else:
             usage(EXIT.UNKNOWN_COMMAND,
-                    'Unknown subcommand: »%s«' % sys.argv[1])
+                    '%s: »%s«' % (_('Unknown subcommand'), sys.argv[1]))
         showWarnings()
     except (EOFError, KeyboardInterrupt):
-        sys.stderr.write('\nOuch!\n')
+        sys.stderr.write('\n%s!\n' % _('Ouch'))
         sys.exit(EXIT.USER_INTERRUPT)
     except VMME.VMMException, e:
-        sys.stderr.write("\aERROR: %s\n" % e[0][0])
+        sys.stderr.write("\a%s: %s\n" % (_('Error'), e[0][0]))
         sys.exit(e[0][1])