vmm
changeset 35 22cc616aef61
parent 34 6d74e20c5b3b
child 38 c44ea4526546
--- a/vmm	Sun May 18 04:51:12 2008 +0000
+++ b/vmm	Sun May 25 03:42:42 2008 +0000
@@ -52,6 +52,7 @@
   ai    aliasinfo       alias@domain.tld
   ad    aliasdelete     alias@domain.tld user@domain.tld*
   gu    getuser         userid
+  ld    listdomains                      pattern*
   cf    configure                        section*
   h     help
   v     version
@@ -100,7 +101,6 @@
     return clear0
 
 def _getOrder():
-    global argc
     order = ()
     if sys.argv[1] in ['di', 'domaininfo']:
         order = (('domainname', 0), ('gid', 1), ('transport', 0),
@@ -118,7 +118,6 @@
         order = (('uid', 1), ('gid', 1), ('address', 0))
     return order
 
-
 def _printInfo(info, title):
     msg = '%s %s' % (title, _('information'))
     print '%s\n%s' % (msg, '-'*len(msg))
@@ -150,8 +149,24 @@
         print _('\tNone')
     print
 
+def _printDomList(domains):
+    if argc < 3:
+        msg = _('Available domains')
+    else:
+        msg = _('Matching domains')
+    print '%s\n%s' % (msg, '-'*len(msg))
+    if not len(domains):
+        print _('\tNone')
+    else:
+        for domain in domains:
+            d = domain[0]
+            if not d.startswith('xn--'):
+                print '\t%s' % d
+            else:
+                print "\t%s (%s)" % (d, vmm.ace2idna(d))
+    print
+
 def domain_add():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing domain name.'))
     elif argc < 4:
@@ -160,7 +175,6 @@
         vmm.domain_add(sys.argv[2].lower(), sys.argv[3])
 
 def domain_delete():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing domain name.'))
     elif argc < 4:
@@ -169,7 +183,6 @@
         vmm.domain_delete(sys.argv[2].lower(), sys.argv[3])
 
 def domain_info():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing domain name.'))
     elif argc < 4:
@@ -181,7 +194,6 @@
         _printUsers(infos[2], _('aliases'))
 
 def domain_transport():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing domain name and new transport.'))
     if argc < 4:
@@ -192,7 +204,6 @@
         vmm.domain_transport(sys.argv[2].lower(), sys.argv[3], sys.argv[4])
 
 def user_add():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
@@ -202,14 +213,12 @@
     vmm.user_add(sys.argv[2].lower(), password)
 
 def user_delete():
-    global argc
     if argc < 3:
         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.'))
     elif argc < 4:
@@ -218,7 +227,6 @@
         _printInfo(vmm.user_info(sys.argv[2].lower(), True), 'Account')
 
 def user_name():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing e-mail address and users name.'))
     if argc < 4:
@@ -227,7 +235,6 @@
         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.'))
     if argc <4:
@@ -236,7 +243,6 @@
         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.'))
     elif argc < 4:
@@ -245,7 +251,6 @@
         vmm.user_enable(sys.argv[2].lower(), sys.argv[3].lower())
 
 def user_disable():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
@@ -254,7 +259,6 @@
         vmm.user_disable(sys.argv[2].lower(), sys.argv[3].lower())
 
 def user_password():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing e-mail address.'))
     elif argc < 4:
@@ -264,21 +268,18 @@
     vmm.user_password(sys.argv[2].lower(), password)
 
 def alias_add():
-    global argc
     if argc < 4:
         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'))
     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'))
     elif argc < 4:
@@ -287,12 +288,17 @@
         vmm.alias_delete(sys.argv[2].lower(), sys.argv[3].lower())
 
 def user_byID():
-    global argc
     if argc < 3:
         usage(EXIT.MISSING_ARGS, _('Missing userid'))
     else:
         _printInfo(vmm.user_byID(sys.argv[2]), 'Account')
 
+def domain_list():
+    if argc < 3:
+        _printDomList(vmm.domain_list())
+    else:
+        _printDomList(vmm.domain_list(sys.argv[2].lower()))
+
 def showWarnings():
     if vmm.hasWarnings():
         print _('\nWarnings:')
@@ -347,6 +353,8 @@
             alias_delete()
         elif sys.argv[1] in ['gu', 'getuser']:
             user_byID()
+        elif sys.argv[1] in ['ld', 'listdomains']:
+            domain_list()
         elif sys.argv[1] in ['h', 'help']:
             usage()
         elif sys.argv[1] in ['v', 'version']: