annotate myw/redirect_test_server.py @ 91:6a45e46f0c05

myw: use new redirect_app
author paulo
date Thu, 06 Apr 2017 22:42:03 -0700
parents
children
rev   line source
paulo@91 1 import os
paulo@91 2 import sys
paulo@91 3 import signal
paulo@91 4
paulo@91 5 import cherrypy
paulo@91 6 from cherrypy import wsgiserver
paulo@91 7
paulo@91 8 import redirect_app
paulo@91 9
paulo@91 10
paulo@91 11 def sighandler(signum, frame):
paulo@91 12 sys.stderr.write("Caught signal: %s \n" % signum)
paulo@91 13 server.stop()
paulo@91 14
paulo@91 15
paulo@91 16 class FileServerRoot:
paulo@91 17 def default(self, *args):
paulo@91 18 if len(args) == 0:
paulo@91 19 raise cherrypy.HTTPError(404)
paulo@91 20
paulo@91 21 filepath = os.path.abspath(os.path.join(*args))
paulo@91 22 return cherrypy.lib.static.serve_file(filepath)
paulo@91 23
paulo@91 24 default.exposed = True
paulo@91 25
paulo@91 26
paulo@91 27 if __name__ == "__main__":
paulo@91 28 fileServerApp = cherrypy.Application(FileServerRoot())
paulo@91 29 dispatcher = wsgiserver.WSGIPathInfoDispatcher({
paulo@91 30 "/index.fcgi": redirect_app.app,
paulo@91 31 "": fileServerApp,
paulo@91 32 })
paulo@91 33 server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 8000), dispatcher)
paulo@91 34
paulo@91 35 signal.signal(signal.SIGINT, sighandler)
paulo@91 36 signal.signal(signal.SIGTERM, sighandler)
paulo@91 37
paulo@91 38 server.start()