Improve help message
[public/pyceo-broken.git] / ceo / console / main.py
1 import sys, ldap, termios
2 from ceo import members, terms, uwldap, ldapi
3
4 from ceo.console.memberlist import MemberList
5 from ceo.console.updateprograms import UpdatePrograms
6 from ceo.console.expiredaccounts import ExpiredAccounts
7 from ceo.console.inactive import Inactive
8
9 commands = {
10   'memberlist' : MemberList(),
11   'updateprograms' : UpdatePrograms(),
12   'expiredaccounts' : ExpiredAccounts(),
13   'inactive': Inactive(),
14 }
15 help_opts = [ '--help', '-h' ]
16
17 def start():
18   args = sys.argv[1:]
19   if args[0] in help_opts:
20     help()
21   elif args[0] in commands:
22     command = commands[args[0]]
23     if len(args) >= 2 and args[1] in help_opts:
24       print command.help
25     else:
26       command.main(args[1:])
27   else:
28     print "Invalid command '%s'" % args[0]
29
30 def help():
31   args = sys.argv[2:]
32   if len(args) == 1:
33     if args[0] in commands:
34       print commands[args[0]].help
35     else:
36       print 'Unknown command %s.' % args[0]
37   else:
38     print ''
39     print 'To run the ceo GUI, type \'ceo\''
40     print ''
41     print 'To run a ceo console command, type \'ceo command\''
42     print ''
43     print 'Available console commands:'
44     for c in commands:
45       print '  %s' % c
46     print ''
47     print 'Run \'ceo command --help\' for help on a specific command.'
48     print ''