Add help for command-line ceo
authorDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Fri, 28 Mar 2008 19:46:32 +0000 (15:46 -0400)
committerDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Fri, 28 Mar 2008 19:46:32 +0000 (15:46 -0400)
ceo/console/expiredaccounts.py
ceo/console/inactive.py
ceo/console/main.py
ceo/console/memberlist.py
ceo/console/updateprograms.py

index cb108fc..49d3ad5 100644 (file)
@@ -2,6 +2,13 @@ import ldap
 from ceo import members, uwldap
 
 class ExpiredAccounts:
 from ceo import members, uwldap
 
 class ExpiredAccounts:
+  help = '''
+expiredaccounts [--email]
+
+Displays a list of expired accounts. If --email is specified, expired account
+owners will be emailed. The email will go to the email listed in uwdir.
+'''
+
   def main(self, args):
     send_email = False
     if len(args) == 1 and args[0] == '--email':
   def main(self, args):
     send_email = False
     if len(args) == 1 and args[0] == '--email':
index 320d6c3..bb3c89b 100644 (file)
@@ -7,9 +7,15 @@ def max_term(term1, term2):
         return term2
 
 class Inactive:
         return term2
 
 class Inactive:
+  help = '''
+inactive delta-terms
+
+Prints a list of accounts that have been inactive (i.e. not unpaid) for
+delta-terms.
+'''
   def main(self, args):
     if len(args) != 1:
   def main(self, args):
     if len(args) != 1:
-        print "Usage: ceo inactive delta-terms"
+        print self.help
         return
     delta = int(args[0])
     mlist = members.list_all()
         return
     delta = int(args[0])
     mlist = members.list_all()
index e375345..1156f53 100644 (file)
@@ -24,11 +24,26 @@ def start():
   (opts, args) = getopt(sys.argv[1:], shortopts, longopts)
   if len(args) >= 1:
     if args[0] in commands:
   (opts, args) = getopt(sys.argv[1:], shortopts, longopts)
   if len(args) >= 1:
     if args[0] in commands:
-      commands[args[0]].main(args[1:])
+      command = commands[args[0]]
+      if len(args) >= 2 and args[1] in ['--help', '-h']:
+        print command.help
+      else:
+        command.main(args[1:])
     else:
       print "Invalid command '%s'" % args[0]
 
 def help():
     else:
       print "Invalid command '%s'" % args[0]
 
 def help():
-  print 'Available commands:'
-  for c in commands:
-    print '  %s' % c
+  args = sys.argv[2:]
+  if len(args) == 1:
+    if args[0] in commands:
+      print commands[args[0]].help
+    else:
+      print 'Unknown command %s.' % args[0]
+  else:
+    print ''
+    print 'Available commands:'
+    for c in commands:
+      print '  %s' % c
+    print ''
+    print 'Run \'ceo command --help\' for help on a specific command.'
+    print ''
index 428278e..10237ad 100644 (file)
@@ -1,8 +1,18 @@
 from ceo import members, terms
 
 class MemberList:
 from ceo import members, terms
 
 class MemberList:
+  help = '''
+memberlist [term]
+
+Displays a list of members for a term; defaults to the current term if term
+is not given.
+'''
   def main(self, args):
   def main(self, args):
-    mlist = members.list_term(terms.current())
+    mlist = {}
+    if len(args) == 1:
+        mlist = members.list_term(args[0])
+    else:
+        mlist = members.list_term(terms.current())
     dns = mlist.keys()
     dns.sort()
     for dn in dns:
     dns = mlist.keys()
     dns.sort()
     for dn in dns:
index d38bd35..c4cc174 100644 (file)
@@ -2,6 +2,11 @@ import ldap, sys, termios
 from ceo import members, uwldap, ldapi
 
 class UpdatePrograms:
 from ceo import members, uwldap, ldapi
 
 class UpdatePrograms:
+  help = '''
+updateprograms
+
+Interactively updates the program field for an account by querying uwdir.
+'''
   def main(self, args):
     mlist = members.list_all().items()
     uwl = ldap.initialize(uwldap.uri())
   def main(self, args):
     mlist = members.list_all().items()
     uwl = ldap.initialize(uwldap.uri())