qmsk/web/args.py
author Tero Marttila <terom@paivola.fi>
Sat, 07 Jun 2014 16:21:39 +0300
changeset 92 e5799432071c
permissions -rw-r--r--
qmsk.web: port pvl.web to python3, and rewrite html
import werkzeug.serving
import argparse

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

def options (parser, static=None) :
    """
        Command-line options.
    """

    parser = parser.add_argument_group("qmsk.web")

    parser.add_argument('--web-static', metavar='PATH', default=static,
            help="Path to static files")

    parser.add_argument('--web-debug', action='store_true',
            help="Web-based debugger")

    return parser

def apply (options, application_class, *args, **opts):
    """
        Build given qmsk.web.Application from options.
    """

    return application_class(*args,
            **opts
    )

def main (options, application) :
    """
        Run given WSGI application via the werkzeug development server.
    """

    static_files = { }

    if options.web_static:
        static_files['/static'] = options.web_static

    log.info("http://0.0.0.0:8080/")
    werkzeug.serving.run_simple('0.0.0.0', 8080, application,
            use_debugger    = options.web_debug,
            static_files    = static_files,
    )

    return 0