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

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

main.fcgi: usage, fix a bit of spacing

  • Property svn:executable set to *
File size: 1.5 KB
RevLine 
[579]1#!/usr/bin/python
[2660]2"""Main FastCGI entry point for web interface"""
3
4import cherrypy
5import os
6import sys
[2692]7from main import InvirtWeb, InvirtUnauthWeb
[2660]8
9dev = False
10base_dir = os.path.dirname(__file__)
11
[2702]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__":
[2661]22    static_dir = os.path.join(base_dir, 'static')
23
[2702]24    if len(sys.argv) > 2:
25        usage()
[2660]26    if len(sys.argv) > 1:
[2702]27        if sys.argv[1] in ('-h', '--help'):
28            usage()
[2660]29        conf_file = sys.argv[1]
30        dev = True
31    else:
32        conf_file = os.path.join(base_dir, 'main.conf')
[2661]33    app = cherrypy.tree.mount(InvirtWeb(),
[2681]34        '/',
[2669]35        {'/':      {'tools.staticdir.root': static_dir,
36                    'tools.invirtwebstate.on': True},
[2661]37        '/static': {'tools.staticdir.on': True,
38                    'tools.staticdir.dir': static_dir}
39         })
[2660]40    app.merge(conf_file)
[2692]41    unauthApp = cherrypy.tree.mount(InvirtUnauthWeb(),
42                                    '/unauth',
43                                    {'/': {'tools.invirtwebstate.on': True}})
44    unauthApp.merge(conf_file)
[2660]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
[2692]54        server = WSGIServer(cherrypy.tree)
[2660]55        server.run()
Note: See TracBrowser for help on using the repository browser.