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