Added "ceoquery", a utility to retrieve lists of members and users.
[mspang/pyceo.git] / bin / ceoquery
1 #!/usr/bin/python2.4 --
2 """
3 ceoquery - a script to lookup member and account information
4 """
5 import os, sys
6
7 safe_environment = ['LOGNAME', 'USERNAME', 'USER', 'HOME', 'TERM', 'LANG'
8     'LC_ALL', 'LC_COLLATE', 'LC_CTYPE', 'LC_MESSAGE', 'LC_MONETARY',
9     'LC_NUMERIC', 'LC_TIME', 'UID', 'GID', 'SSH_CONNECTION', 'SSH_AUTH_SOCK',
10     'SSH_CLIENT']
11
12 for key in os.environ.keys():
13     if key not in safe_environment:
14         del os.environ[key]
15
16 os.environ['PATH'] = '/bin:/usr/bin'
17
18 for dir in sys.path[:]:
19     if not dir.find('/usr') == 0:
20         while dir in sys.path:
21             sys.path.remove(dir)
22
23 from csc.adm import members, terms
24
25 try:
26     members.connect()
27 except Exception, e:
28     print "ceoquery: %s" % e
29     sys.exit(1)
30
31 def usage():
32     print "Usage: ceoquery memberlist|booklist|allmembers|allusers|termusers"
33
34 if len(sys.argv) < 2:
35     usage()
36
37 elif sys.argv[1] == 'memberlist':
38     
39     current_term = terms.current()
40     members = members.list_term(current_term)
41     for member in members:
42         print "%(memberid)s|%(name)s|%(program)s|%(userid)s" % member
43
44 elif sys.argv[1] == 'allmembers':
45
46     members = members.list_all()
47     for member in members:
48         print "%(memberid)s|%(name)s|%(program)s|%(userid)s" % member
49
50 elif sys.argv[1] == 'booklist':
51
52     pass
53
54 elif sys.argv[1] == 'allusers':
55
56     members = members.list_all()
57     for member in members:
58         if member['userid']:
59             print member['userid']
60
61 elif sys.argv[1] == 'termusers':
62
63     if len(sys.argv) > 2:
64         term = sys.argv[2]
65     else:
66         term = terms.current()
67
68     members = members.list_term(term)
69     for member in members:
70         if member['userid']:
71             print member['userid']
72
73 else:
74
75     usage()
76