terom@0: #!/usr/bin/python terom@0: terom@0: from werkzeug.serving import run_simple terom@0: terom@0: import pvl.args terom@165: import pvl.web.args terom@178: import pvl.verkko terom@178: import pvl.verkko.dhcp terom@0: terom@226: from pvl.verkko import __version__ terom@0: import optparse terom@0: import logging; log = logging.getLogger('main') terom@0: terom@0: def parse_argv (argv, doc = __doc__) : terom@0: """ terom@0: Parse command-line argv, returning (options, args). terom@0: """ terom@0: terom@0: prog = argv.pop(0) terom@0: args = argv terom@0: terom@0: # optparse terom@0: parser = optparse.OptionParser( terom@0: prog = prog, terom@0: usage = '%prog: [options] [ [...]]', terom@0: version = __version__, terom@0: description = doc, terom@0: ) terom@0: terom@0: # common terom@0: parser.add_option_group(pvl.args.parser(parser)) terom@165: parser.add_option_group(pvl.web.args.parser(parser)) terom@0: terom@14: parser.add_option('-d', '--database-read', metavar='URI', default='sqlite:///var/verkko.db', terom@2: help="Database to use (readonly)") terom@2: terom@0: # parse terom@0: options, args = parser.parse_args(args) terom@0: terom@0: # apply terom@0: pvl.args.apply(options) terom@0: terom@0: return options, args terom@0: terom@0: def main (argv) : terom@0: """ terom@151: pvl.verkko wsgi development server. terom@0: """ terom@0: terom@0: # parse cmdline terom@0: options, args = parse_argv(argv, doc=__doc__) terom@0: terom@178: # open terom@178: database = pvl.verkko.Database(options.database_read) terom@178: terom@0: # app terom@178: application = pvl.web.args.apply(options, pvl.verkko.dhcp.Application, database) terom@241: pvl.web.args.main(options, application) terom@0: terom@0: if __name__ == '__main__' : terom@0: import sys terom@0: terom@0: sys.exit(main(sys.argv)) terom@0: terom@0: