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

Last change on this file since 2734 was 2734, checked in by broder, 14 years ago

Fix dumb mistakes in my r2655.

  • Property svn:executable set to *
File size: 1.5 KB
Line 
1#!/usr/bin/python
2"""Main FastCGI entry point for web interface"""
3
4import cherrypy
5import os
6import sys
7
8import main
9
10dev = False
11base_dir = os.path.dirname(__file__)
12
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`.
19
20Run this script as either 'auth.fcgi' or 'unauth.fcgi', to get
21the authenticated or unauthenticated site respectively.
22""" % sys.argv[0]
23    sys.exit(2)
24
25if __name__ == "__main__":
26    if len(sys.argv) > 2:
27        usage()
28    if len(sys.argv) > 1:
29        if sys.argv[1] in ('-h', '--help'):
30            usage()
31        conf_file = sys.argv[1]
32        dev = True
33    else:
34        conf_file = os.path.join(base_dir, 'main.conf')
35
36    app_config = {
37        '/': {
38            'tools.invirtwebstate.on': True,
39            },
40        }
41
42    if os.path.basename(sys.argv[0]).startswith('auth'):
43        root = main.InvirtWeb()
44    elif os.path.basename(sys.argv[0]).startswith('unauth'):
45        root = main.InvirtUnauthWeb()
46    else:
47        usage()
48
49    app = cherrypy.tree.mount(root, '/', app_config)
50    app.merge(conf_file)
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
60        server = WSGIServer(cherrypy.tree)
61        server.run()
Note: See TracBrowser for help on using the repository browser.