pvl/web/args.py
author Tero Marttila <terom@paivola.fi>
Mon, 16 Dec 2013 10:21:37 +0200
changeset 256 63b285ceae41
parent 241 97a0a66e2211
child 362 003b624d35a8
permissions -rw-r--r--
pvl.dhcp.config: nested blocks
import codecs
import werkzeug.serving 
import optparse

import logging; log = logging.getLogger('pvl.web.args')

def parser (parser) :
    """
        Command-line args for pvl.web
    """

    parser = optparse.OptionGroup(parser, 'pvl.web')

    parser.add_option('--web-layout', metavar='TEMPLATE',
            help="Use template from given file for layout")

    return parser

def apply (options, application, *args, **opts) :
    """
        Build given pvl.web.Application subclass from options.
    """

    if options.web_layout :
        layout = codecs.open(options.web_layout, 'r', 'utf-8').read()
    else :
        layout = None
    
    return application(*args,
        layout      = layout,
        **opts
    )

def main (options, wsgi) :
    """
        Run the werkzeug development server.
    """

    werkzeug.serving.run_simple('0.0.0.0', 8080, wsgi,
        #use_reloader    = True, 
        use_debugger    = (options.loglevel == logging.DEBUG),
        static_files    = {
            '/static':      'static',
        },
    )

    return 0