#!/usr/bin/env python import os, sys sys.path.append(".") sys.path.append("./FeatureServer") from FeatureServer.Server import wsgiApp, wsgiHandler, cfgfiles, theServer, Server def list_dists(): dist_list = os.listdir("dists") dist_html = map(lambda x: "
  • %s
  • " % (x,x), dist_list) html = "Software Distributions" % "\n".join(dist_html) return html def myapp (environ, start_response): mimetypes = { 'gz':'application/x-tar', 'zip':'application/zip', 'png': 'image/png', 'jpeg':'image/jpeg', 'js':'application/x-javascript', 'css':'text/css', 'swf':'application/x-shockwave-flash'} global theServer cfgs = cfgfiles if not theServer: theServer = Server.load('conf/featureserver.cfg') path = environ['PATH_INFO'] parts = path.split("/") if parts[-1] == "" and path != "/": path += "index.html" parts[-1] = "index.html" mime = "text/html" splits = parts[-1].split(".") mime = mimetypes.get(splits[-1], "text/html") if path == "/": start_response("200 OK", [('Content-Type',mime)]) return [str(open("./docs/index.html").read())] elif path == "/docs/fs.html": try: os.stat("docs/tiles") start_response("200 OK", [('Content-Type',mime)]) return [str(open("./docs/fs.html").read())] except OSError, E: start_response("200 OK", [('Content-Type',mime)]) return [str(open("./docs/fs-wms.html").read())] if "/docs" == path[0:5]: start_response("200 OK", [('Content-Type',mime)]) return [str(open(".%s" % path, "rb").read())] if "/dists" == path[0:6]: if len(parts) > 2: start_response("200 OK", [('Content-Type',mime)]) return [str(open(".%s" % path, "rb").read())] else: start_response("200 OK", [('Content-Type',"text/html")]) return [str(list_dists())] return wsgiHandler(environ, start_response, theServer) if __name__ == '__main__': from wsgiref import simple_server httpd = simple_server.WSGIServer(('',8080), simple_server.WSGIRequestHandler,) print "Listening on port 8080" print "Browse to http://localhost:8080/ to view demos." httpd.set_app(myapp) httpd.serve_forever()