pvl/web/args.py
author Tero Marttila <terom@paivola.fi>
Sat, 26 Jul 2014 13:53:01 +0300
changeset 423 f478fcffa829
parent 362 003b624d35a8
permissions -rw-r--r--
Added tag 0.7.0 for changeset 56ba4bef5016
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")

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

    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.
    """

    static_files = { }

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

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

    return 0