X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/134d4e881d540fbe492687aac00b8aab2ce7c728..e741fd1d0affaa05859561b5a3219ee055c10c07:/code/main.fcgi?ds=inline diff --git a/code/main.fcgi b/code/main.fcgi index cd10538..b20cfeb 100755 --- a/code/main.fcgi +++ b/code/main.fcgi @@ -4,27 +4,52 @@ import cherrypy import os import sys -from main import InvirtWeb +from main import InvirtWeb, InvirtUnauthWeb dev = False base_dir = os.path.dirname(__file__) -if __name__=="__main__": +def usage(): + print >>sys.stderr, """%s [config] + +Run server as FastCGI, with CherryPy config from "main.conf". + +With `config`, run standalone with CherryPy config from `config`. +""" % sys.argv[0] + sys.exit(2) + +if __name__ == "__main__": static_dir = os.path.join(base_dir, 'static') + if len(sys.argv) > 2: + usage() if len(sys.argv) > 1: + if sys.argv[1] in ('-h', '--help'): + usage() conf_file = sys.argv[1] dev = True else: conf_file = os.path.join(base_dir, 'main.conf') - app = cherrypy.tree.mount(InvirtWeb(), - '/', - {'/': {'tools.staticdir.root': static_dir, - 'tools.invirtwebstate.on': True}, - '/static': {'tools.staticdir.on': True, - 'tools.staticdir.dir': static_dir} - }) - app.merge(conf_file) + + app_config = { + '/': { + 'tools.invirtwebstate.on': True, + }, + '/static': { + 'tools.staticdir.root': static_dir, + 'tools.staticdir.on': True, + 'tools.staticdir.dir': static_dir, + } + } + + authApp = cherrypy.tree.mount(InvirtWeb(), + '/auth', + app_config) + authApp.merge(conf_file) + unauthApp = cherrypy.tree.mount(InvirtUnauthWeb(), + '/unauth', + app_config) + unauthApp.merge(conf_file) cherrypy.config.update(conf_file) if dev: @@ -34,5 +59,5 @@ if __name__=="__main__": else: cherrypy.engine.start(blocking=False) from flup.server.fcgi import WSGIServer - server = WSGIServer(app) + server = WSGIServer(cherrypy.tree) server.run()