4
from optparse import OptionParser
7
from twisted.internet import reactor
9
from wlms import MetaServer
12
parser = OptionParser()
13
parser.add_option("-d", "--dbfile", default="",
14
help="Use flatfile database. File format is 'user\\tpassword\\tpermissions\n'", metavar="DB")
15
parser.add_option("-p", "--port", type=int, default=7395,
16
help="Listen on this port")
17
parser.add_option("-l", "--log", type=str, default="warning",
18
help="level of logging. Can be debug, info, warning, error, critical. Warning: if you set this do debug, password might appear in the logfile. [%default]")
19
parser.add_option("-f", "--logfile", type=str, default=None,
20
help="Logfile to use. Otherwise, logging goes to the console.")
22
o, args = parser.parse_args()
24
numeric_level = getattr(logging, o.log.upper(), None)
25
if not isinstance(numeric_level, int):
26
raise ValueError('Invalid log level: %s' % loglevel)
27
logging.basicConfig(format='%(asctime)s %(levelname)s:%(message)s',
28
level=numeric_level, filename=o.logfile)
33
o, args = parse_args()
36
logging.info("Using flat file database.")
37
from wlms.db.flatfile import FlatFileDatabase
38
db = FlatFileDatabase(open(o.dbfile, "r").read())
40
logging.info("Using django database with settings.py.")
41
from wlms.db.djangobridge import DjangoDatabaseBridge
42
db = DjangoDatabaseBridge()
44
logging.info("Now accepting connections")
45
reactor.listenTCP(o.port, MetaServer(db))
48
if __name__ == '__main__':