source: package_branches/invirt-web/cherrypy/code/invirt.fcgi @ 2670

Last change on this file since 2670 was 2656, checked in by price, 14 years ago

Fix dumb mistakes in my r2655.

  • Property svn:executable set to *
File size: 1.5 KB
RevLine 
[579]1#!/usr/bin/python
[2655]2"""Main FastCGI entry point for web interface"""
[2386]3
4import cherrypy
5import os
6import sys
7
[2655]8import main
9
[2386]10dev = False
11base_dir = os.path.dirname(__file__)
12
[2521]13def usage():
14    print >>sys.stderr, """%s [config]
15
16Run server as FastCGI, with CherryPy config from "main.conf".
17
18With `config`, run standalone with CherryPy config from `config`.
[2655]19
20Run this script as either 'auth.fcgi' or 'unauth.fcgi', to get
21the authenticated or unauthenticated site respectively.
[2521]22""" % sys.argv[0]
23    sys.exit(2)
24
25if __name__ == "__main__":
26    if len(sys.argv) > 2:
27        usage()
[2386]28    if len(sys.argv) > 1:
[2521]29        if sys.argv[1] in ('-h', '--help'):
30            usage()
[2386]31        conf_file = sys.argv[1]
32        dev = True
33    else:
34        conf_file = os.path.join(base_dir, 'main.conf')
[2650]35
36    app_config = {
37        '/': {
38            'tools.invirtwebstate.on': True,
39            },
40        }
[2655]41
42    if os.path.basename(sys.argv[0]).startswith('auth'):
[2656]43        root = main.InvirtWeb()
[2655]44    elif os.path.basename(sys.argv[0]).startswith('unauth'):
[2656]45        root = main.InvirtUnauthWeb()
[2655]46    else:
47        usage()
48
49    app = cherrypy.tree.mount(root, '/', app_config)
[2651]50    app.merge(conf_file)
[2386]51    cherrypy.config.update(conf_file)
52
53    if dev:
54        cherrypy.server.quickstart()
55        cherrypy.engine.start()
56        cherrypy.engine.block()
57    else:
58        cherrypy.engine.start(blocking=False)
59        from flup.server.fcgi import WSGIServer
[2484]60        server = WSGIServer(cherrypy.tree)
[2386]61        server.run()
Note: See TracBrowser for help on using the repository browser.