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

Last change on this file since 2719 was 2702, checked in by broder, 15 years ago

main.fcgi: usage, fix a bit of spacing

  • 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
7from main import InvirtWeb, InvirtUnauthWeb
8
9dev = False
10base_dir = os.path.dirname(__file__)
11
12def usage():
13    print >>sys.stderr, """%s [config]
14
15Run server as FastCGI, with CherryPy config from "main.conf".
16
17With `config`, run standalone with CherryPy config from `config`.
18""" % sys.argv[0]
19    sys.exit(2)
20
21if __name__ == "__main__":
22    static_dir = os.path.join(base_dir, 'static')
23
24    if len(sys.argv) > 2:
25        usage()
26    if len(sys.argv) > 1:
27        if sys.argv[1] in ('-h', '--help'):
28            usage()
29        conf_file = sys.argv[1]
30        dev = True
31    else:
32        conf_file = os.path.join(base_dir, 'main.conf')
33    app = cherrypy.tree.mount(InvirtWeb(),
34        '/',
35        {'/':      {'tools.staticdir.root': static_dir,
36                    'tools.invirtwebstate.on': True},
37        '/static': {'tools.staticdir.on': True,
38                    'tools.staticdir.dir': static_dir}
39         })
40    app.merge(conf_file)
41    unauthApp = cherrypy.tree.mount(InvirtUnauthWeb(),
42                                    '/unauth',
43                                    {'/': {'tools.invirtwebstate.on': True}})
44    unauthApp.merge(conf_file)
45    cherrypy.config.update(conf_file)
46
47    if dev:
48        cherrypy.server.quickstart()
49        cherrypy.engine.start()
50        cherrypy.engine.block()
51    else:
52        cherrypy.engine.start(blocking=False)
53        from flup.server.fcgi import WSGIServer
54        server = WSGIServer(cherrypy.tree)
55        server.run()
Note: See TracBrowser for help on using the repository browser.