summaryrefslogtreecommitdiff
path: root/standalone.py
diff options
context:
space:
mode:
authormartin.von.loewis <devnull@localhost>2010-01-02 14:28:43 +0000
committermartin.von.loewis <devnull@localhost>2010-01-02 14:28:43 +0000
commitb43387f9813a2e5010b8ad26e5e7cdf30ce2456f (patch)
tree5cb814a88c6cb04e9eb412e04f439f6019e1e7a2 /standalone.py
parent55c396ddf103f8a8105065733d3cf5e1b4094690 (diff)
downloaddecorator-b43387f9813a2e5010b8ad26e5e7cdf30ce2456f.tar.gz
Support interaction over stdin/out.
Diffstat (limited to 'standalone.py')
-rwxr-xr-x[-rw-r--r--]standalone.py38
1 files changed, 32 insertions, 6 deletions
diff --git a/standalone.py b/standalone.py
index 85be2cf..f0cd1da 100644..100755
--- a/standalone.py
+++ b/standalone.py
@@ -1,5 +1,5 @@
#!/usr/bin/python
-import config, webui, BaseHTTPServer, urllib
+import config, webui, BaseHTTPServer, urllib, sys, getopt
class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
config = config.Config("config.ini")
@@ -25,11 +25,11 @@ class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
query = ''
env = {}
- env['SERVER_SOFTWARE'] = self.version_string()
- env['SERVER_NAME'] = self.server.server_name
+ #env['SERVER_SOFTWARE'] = self.version_string()
+ #env['SERVER_NAME'] = self.server.server_name
+ #env['SERVER_PORT'] = str(self.server.server_port)
env['GATEWAY_INTERFACE'] = 'CGI/1.1'
env['SERVER_PROTOCOL'] = self.protocol_version
- env['SERVER_PORT'] = str(self.server.server_port)
env['REQUEST_METHOD'] = self.command
uqrest = urllib.unquote(rest)
env['PATH_INFO'] = uqrest
@@ -84,5 +84,31 @@ class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
webui.WebUI(self, env).run()
do_GET = do_POST = run
-httpd = BaseHTTPServer.HTTPServer(('',8000), RequestHandler)
-httpd.serve_forever()
+class StdinoutHandler(RequestHandler):
+ def __init__(self):
+ # request, client_address, server
+ RequestHandler.__init__(self, None, ('',0), None)
+ def setup(self):
+ self.rfile = sys.stdin
+ #import StringIO
+ #self.rfile = StringIO.StringIO('GET /pypi HTTP/1.0\r\n\r\n')
+ self.wfile = sys.stdout
+
+def main():
+ port = 8000
+ opts, args = getopt.getopt(sys.argv[1:], 'ip:',
+ ['interactive', 'port='])
+ assert not args
+ for opt, val in opts:
+ if opt in ('-i', '--interactive'):
+ port = None
+ elif opt in ('-p', '--port'):
+ port = int(val)
+ if port:
+ httpd = BaseHTTPServer.HTTPServer(('',8000), RequestHandler)
+ httpd.serve_forever()
+ else:
+ StdinoutHandler()
+
+if __name__=='__main__':
+ main()