History for TwistedZopeIntegrationCode
??changed:
-
import os
import sys
import string
here = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(here, 'lib', 'python'))
from ZPublisher.Publish import publish_module
def setupzope():
import os
import sys
here = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(here, 'lib', 'python'))
import Zope
Zope.configure(os.path.join(here, 'etc', 'zope.conf'))
Zope.startup()
__version__ = 1
setupzope()
from twisted.internet import reactor
from twisted.web import static, server, twcgi, resource
#from twisted.python import filepath
from twisted.python import log
log.startLogging(file('twisted.log', 'w'))
from cStringIO import StringIO
#docroot = '/home/chrism/'
#cgibin = docroot + '/cgibin'
#root = static.File(docroot)
#root.putChild("cgi-bin", twcgi.CGIDirectory(cgibin))
class ZopeResource(resource.Resource):
isLeaf = 1
def __init__(self, data):
self.data = data
def render(self, request):
return self.data
class ZopeRoot(resource.Resource):
def getChild(self, path, request):
stdout = StringIO()
script_name = "/"+string.join(request.prepath, '/')
python_path = string.join(sys.path, os.pathsep)
serverName = string.split(request.getRequestHostname(), ':')[0]
env = {
"SERVER_SOFTWARE": 'ZTwisted' , # server.version,
"SERVER_NAME": serverName,
"GATEWAY_INTERFACE": "CGI/1.1",
"SERVER_PROTOCOL": request.clientproto,
"SERVER_PORT": str(request.getHost()[2]),
"REQUEST_METHOD": request.method,
"SCRIPT_NAME": script_name, # XXX
"REQUEST_URI": request.uri,
"PATH_INFO": path,
}
publish_module('Zope', stdout=stdout, environ=env)
stdout.seek(0)
data = stdout.read()
return ZopeResource(data)
class ZopeSite(server.Site):
pass
root = ZopeRoot()
reactor.listenTCP(6969, ZopeSite(root))
reactor.run()