You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
988 B
40 lines
988 B
15 years ago
|
'''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()
|