43 lines
1.1 KiB
Python
Executable File
43 lines
1.1 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import sys, ldap
|
|
from getpass import getpass
|
|
import ceo.urwid.main
|
|
import ceo.console.main
|
|
from ceo import ldapi, members, library
|
|
|
|
def start():
|
|
try:
|
|
if len(sys.argv) == 1:
|
|
print "Reading config file...",
|
|
members.configure()
|
|
library.configure()
|
|
|
|
print "Connecting to LDAP..."
|
|
members.connect(AuthCallback())
|
|
|
|
ceo.urwid.main.start()
|
|
else:
|
|
members.configure()
|
|
library.configure()
|
|
members.connect(AuthCallback())
|
|
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:
|
|
print "Password: ",
|
|
return getpass("")
|
|
except KeyboardInterrupt:
|
|
print ""
|
|
sys.exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
start()
|