view requestdumpster/dumpster.py @ 7:83c51f45b82d

optparse -> argparse and the like
author Jeff Hammel <k0scist@gmail.com>
date Wed, 16 Dec 2015 10:31:00 -0800
parents aa19f80caa63
children eb260393caef
line wrap: on
line source

#!/usr/bin/env python

"""
dump HTTP requests
"""

# imports
import argparse
import os
import sys
import time
import wsgiref

# module globals
__all__ = ['RequestDumpster']

class RequestDumpster(object):
    """WSGI interface to dump HTTP requests"""

    def __init__(self, directory=None):
        if directory is not None and not os.path.isdir(directory):
            raise Exception("Not a directory")
        self.directory = directory

    def __call__(self, environ, start_response):
        """WSGI"""


def main(args=sys.argv[1:]):
    """CLI"""

    # parse command line arguments
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('-p', '--port', dest='port',
                        type=int, default=9555,
                        help="port to serve on")
    parser.add_argument('-d', '--directory', dest='directory',
                        help="directory to output requests to")
    options = parser.parse_args()

    # instantiate WSGI app
    app = RequestDumpster(directory=options.directory)

    # construct url
    url = 'http://localhost:{port}/'.format(port=options.port)

    # serve some web
    server = simple_server.make_server(host=host, port=int(port), app=app)
    print url
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass


if __name__ == '__main__':
    main()