~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to wlmetaserver.py

  • Committer: Holger Rapp
  • Date: 2009-02-26 22:38:49 UTC
  • Revision ID: sirver@kallisto.local-20090226223849-1563ij0uuw0lz0zu
First version of widelands online help

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/env python
2
 
# encoding: utf-8
3
 
 
4
 
from optparse import OptionParser
5
 
import logging
6
 
 
7
 
from twisted.internet import reactor
8
 
 
9
 
from wlms import MetaServer
10
 
 
11
 
def parse_args():
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.")
21
 
 
22
 
    o, args =  parser.parse_args()
23
 
 
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)
29
 
 
30
 
    return o, args
31
 
 
32
 
def main():
33
 
    o, args = parse_args()
34
 
 
35
 
    if o.dbfile:
36
 
        logging.info("Using flat file database.")
37
 
        from wlms.db.flatfile import FlatFileDatabase
38
 
        db = FlatFileDatabase(open(o.dbfile, "r").read())
39
 
    else:
40
 
        logging.info("Using django database with settings.py.")
41
 
        from wlms.db.djangobridge import DjangoDatabaseBridge
42
 
        db = DjangoDatabaseBridge()
43
 
 
44
 
    logging.info("Now accepting connections")
45
 
    reactor.listenTCP(o.port, MetaServer(db))
46
 
    reactor.run()
47
 
 
48
 
if __name__ == '__main__':
49
 
    main()