Added console app

* Added 'ceo --help' stub
* Added 'ceo memberlist' command
This commit is contained in:
David Bartley 2008-01-10 23:59:25 -05:00
parent 9d3119274b
commit 5778d003c2
5 changed files with 64 additions and 25 deletions

View File

@ -1,3 +1,3 @@
#!/usr/bin/python
import ceo.urwid.main
ceo.urwid.main.start()
import ceo.main
ceo.main.start()

1
ceo/console/__init__.py Normal file
View File

@ -0,0 +1 @@
"""Console Interface"""

26
ceo/console/main.py Normal file
View File

@ -0,0 +1,26 @@
import sys
from getopt import getopt
from ceo import members, terms
shortopts = [
]
longopts = [
]
def start():
(opts, args) = getopt(sys.argv[1:], shortopts, longopts)
if len(args) == 1:
if args[0] == 'memberlist':
mlist = members.list_term(terms.current()).values()
for member in mlist:
print '%s %s %s' % (
member['uid'][0].ljust(12),
member['cn'][0].ljust(30),
member.get('program', [''])[0]
)
else:
print "Invalid argument '%s'" % args[0]
def help():
print 'ceo memberlist'

33
ceo/main.py Normal file
View File

@ -0,0 +1,33 @@
import sys, ldap
from getpass import getpass
import ceo.urwid.main
import ceo.console.main
from ceo import ldapi, members
def start():
try:
if len(sys.argv) >= 2 and sys.argv[1] == '--help':
ceo.console.main.help()
sys.exit(0)
members.connect(AuthCallback())
if len(sys.argv) == 1:
ceo.urwid.main.start()
else:
ceo.console.main.start()
except ldap.LOCAL_ERROR, e:
print ldapi.format_ldaperror(e)
except ldap.INSUFFICIENT_ACCESS, e:
print ldapi.format_ldaperror(e)
print "You probably aren't permitted to do whatever you just tried."
print "Admittedly, ceo probably shouldn't have crashed either."
class AuthCallback:
def callback(self, error):
try:
sys.stderr.write("Password: ")
return getpass("")
except KeyboardInterrupt:
print ""
sys.exit(1)

View File

@ -1,5 +1,4 @@
import sys, random, ldap, urwid.curses_display, getpass
from ceo import members, ldapi
import sys, random, urwid.curses_display
from ceo.urwid.widgets import *
from ceo.urwid.window import *
from ceo.urwid import newmember, renew, info, search, positions, groups, shell
@ -166,27 +165,7 @@ def run():
event_loop( ui )
def start():
try:
print "Connecting...\n",
sys.stdout.flush()
members.connect(AuthCallback())
print "done."
ui.run_wrapper( run )
except ldap.LOCAL_ERROR, e:
print ldapi.format_ldaperror(e)
except ldap.INSUFFICIENT_ACCESS, e:
print ldapi.format_ldaperror(e)
print "You probably aren't permitted to do whatever you just tried."
print "Admittedly, ceo probably shouldn't have crashed either."
class AuthCallback:
def callback(self, error):
try:
return getpass.getpass("Password: ")
except KeyboardInterrupt:
print ""
sys.exit(1)
if __name__ == '__main__':
start()