bin/pvl.verkko-dhcp
author Tero Marttila <terom@paivola.fi>
Sun, 07 Sep 2014 14:21:56 +0300
changeset 424 e77e967d59b0
parent 241 97a0a66e2211
permissions -rwxr-xr-x
hgignore: use glob; ignore snmp mibs
#!/usr/bin/python

from werkzeug.serving import run_simple

import pvl.args
import pvl.web.args
import pvl.verkko
import pvl.verkko.dhcp

from pvl.verkko import __version__
import optparse
import logging; log = logging.getLogger('main')

def parse_argv (argv, doc = __doc__) :
    """
        Parse command-line argv, returning (options, args).
    """

    prog = argv.pop(0)
    args = argv

    # optparse
    parser = optparse.OptionParser(
        prog        = prog,
        usage       = '%prog: [options] [<user> [...]]',
        version     = __version__,
        description = doc,
    )

    # common
    parser.add_option_group(pvl.args.parser(parser))
    parser.add_option_group(pvl.web.args.parser(parser))

    parser.add_option('-d', '--database-read', metavar='URI', default='sqlite:///var/verkko.db',
        help="Database to use (readonly)")

    # parse
    options, args = parser.parse_args(args)

    # apply
    pvl.args.apply(options)

    return options, args

def main (argv) :
    """
        pvl.verkko wsgi development server.
    """

    # parse cmdline
    options, args = parse_argv(argv, doc=__doc__)

    # open
    database = pvl.verkko.Database(options.database_read)

    # app
    application = pvl.web.args.apply(options, pvl.verkko.dhcp.Application, database)
    pvl.web.args.main(options, application)

if __name__ == '__main__' :
    import sys

    sys.exit(main(sys.argv))