Port vnc page to Mako and CherryPy
[invirt/packages/invirt-web.git] / code / main.fcgi
1 #!/usr/bin/python
2 """Main FastCGI entry point for web interface"""
3
4 import cherrypy
5 import os
6 import sys
7 from main import InvirtWeb
8
9 dev = False
10 base_dir = os.path.dirname(__file__)
11
12 if __name__=="__main__":
13     static_dir = os.path.join(base_dir, 'static')
14
15     if len(sys.argv) > 1:
16         conf_file = sys.argv[1]
17         dev = True
18     else:
19         conf_file = os.path.join(base_dir, 'main.conf')
20     app = cherrypy.tree.mount(InvirtWeb(),
21         '/' if dev else '/main.fcgi',
22         {'/':      {'tools.staticdir.root': static_dir,
23                     'tools.invirtwebstate.on': True},
24         '/static': {'tools.staticdir.on': True,
25                     'tools.staticdir.dir': static_dir}
26          })
27     app.merge(conf_file)
28     cherrypy.config.update(conf_file)
29
30     if dev:
31         cherrypy.server.quickstart()
32         cherrypy.engine.start()
33         cherrypy.engine.block()
34     else:
35         cherrypy.engine.start(blocking=False)
36         from flup.server.fcgi import WSGIServer
37         server = WSGIServer(app)
38         server.run()