paulo@91: import os paulo@91: import sys paulo@91: import signal paulo@91: paulo@91: import cherrypy paulo@91: from cherrypy import wsgiserver paulo@91: paulo@91: import redirect_app paulo@91: paulo@91: paulo@91: def sighandler(signum, frame): paulo@91: sys.stderr.write("Caught signal: %s \n" % signum) paulo@91: server.stop() paulo@91: paulo@91: paulo@91: class FileServerRoot: paulo@91: def default(self, *args): paulo@91: if len(args) == 0: paulo@91: raise cherrypy.HTTPError(404) paulo@91: paulo@91: filepath = os.path.abspath(os.path.join(*args)) paulo@91: return cherrypy.lib.static.serve_file(filepath) paulo@91: paulo@91: default.exposed = True paulo@91: paulo@91: paulo@91: if __name__ == "__main__": paulo@91: fileServerApp = cherrypy.Application(FileServerRoot()) paulo@91: dispatcher = wsgiserver.WSGIPathInfoDispatcher({ paulo@91: "/index.fcgi": redirect_app.app, paulo@91: "": fileServerApp, paulo@91: }) paulo@91: server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8000), dispatcher) paulo@91: paulo@91: signal.signal(signal.SIGINT, sighandler) paulo@91: signal.signal(signal.SIGTERM, sighandler) paulo@91: paulo@91: server.start()