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
92
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
import werkzeug.serving
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
import argparse
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
import logging; log = logging.getLogger('qmsk.web.args')
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
def options (parser, static=None) :
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
    """
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
        Command-line options.
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
    """
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
    parser = parser.add_argument_group("qmsk.web")
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    parser.add_argument('--web-static', metavar='PATH', default=static,
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
            help="Path to static files")
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
    parser.add_argument('--web-debug', action='store_true',
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
            help="Web-based debugger")
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
    return parser
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
def apply (options, application_class, *args, **opts):
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    """
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
        Build given qmsk.web.Application from options.
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
    """
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
    return application_class(*args,
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
            **opts
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
    )
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
def main (options, application) :
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
    """
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
        Run given WSGI application via the werkzeug development server.
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    33
    """
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    34
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    35
    static_files = { }
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
    if options.web_static:
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
        static_files['/static'] = options.web_static
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
    log.info("http://0.0.0.0:8080/")
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
    werkzeug.serving.run_simple('0.0.0.0', 8080, application,
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
            use_debugger    = options.web_debug,
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
            static_files    = static_files,
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
    )
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
e5799432071c qmsk.web: port pvl.web to python3, and rewrite html
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
    return 0