summaryrefslogtreecommitdiffstats
path: root/karm/test/__httpd.py
diff options
context:
space:
mode:
Diffstat (limited to 'karm/test/__httpd.py')
-rw-r--r--karm/test/__httpd.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/karm/test/__httpd.py b/karm/test/__httpd.py
new file mode 100644
index 000000000..ba87113be
--- /dev/null
+++ b/karm/test/__httpd.py
@@ -0,0 +1,39 @@
+'''Runs an HTTP server on port 8000 (or the first command line argument).'''
+
+import BaseHTTPServer
+import SimpleHTTPServer
+import sys
+import os.path
+
+class MyHandler( SimpleHTTPServer.SimpleHTTPRequestHandler ):
+
+ def do_PUT( self ):
+ '''Just enough to work with karm.'''
+ path = self.translate_path(self.path)
+
+ rval = 200
+ if not os.path.exists( path ): rval = 201
+
+ f = file( path, "w" )
+ lines = []
+ while 1:
+ line = self.rfile.readline()
+ lines.append( line )
+ if line == '\r\n' or line == '\n' or line == '':
+ break
+ f.writelines( lines )
+ self.send_response( rval )
+
+
+DEFAULT_PORT = 8000
+
+if sys.argv[1:]: port = int(sys.argv[1])
+else: port = DEFAULT_PORT
+server_address = ('', port)
+
+SimpleHTTPServer.SimpleHTTPRequestHandler.protocol_version = "HTTP/1.0"
+httpd = BaseHTTPServer.HTTPServer(server_address, MyHandler )
+
+sa = httpd.socket.getsockname()
+print "Serving HTTP on", sa[0], "port", sa[1], "..."
+httpd.serve_forever()