#!/usr/bin/env python # Single purpose HTTP server # - serves files specified as arguments in order of appearance import os import sys import BaseHTTPServer #from pprint import pprint class Handler(BaseHTTPServer.BaseHTTPRequestHandler): def do_POST(self): print self.rfile.read(int(self.headers.getheader('content-length'))) response = self.dummy_response if not self.filelist: print 'No more files to serve - sending dummy response' sys.stdout.flush() else: response = self.filelist.pop() self.reply(response) def reply(self, response): try: #redirect stdout to client stdout = sys.stdout sys.stdout = self.wfile print response stdout.flush() finally: sys.stdout = stdout # restore pass PORT = 12345 print "Serving at port", PORT sys.stdout.flush() filelist = [] for file in sys.argv[1:]: if os.path.isfile(file): print "Adding file %s" % file sys.stdout.flush() with open(file) as f: filelist.append(f.read()) filelist.reverse() Handler.filelist = filelist Handler.dummy_response = open("dummy", "r").read() httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler) httpd.serve_forever()