mitmproxy/pathod

56 lines
1.8 KiB
Plaintext
Raw Normal View History

2012-04-28 00:42:03 +00:00
#!/usr/bin/env python
2012-04-29 00:05:38 +00:00
import argparse, sys
from libpathod import pathod, utils, version
2012-04-28 00:42:03 +00:00
import tornado.ioloop
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Process some integers.')
2012-04-29 05:37:47 +00:00
parser.add_argument("-p", dest='port', default=9999, type=int, help='Port.')
2012-04-29 00:05:38 +00:00
parser.add_argument(
"-a", dest='anchors', default=[], type=str, action="append",
help='Add an anchor. Specified as a string with the form pattern=pagespec'
)
2012-04-28 00:42:03 +00:00
parser.add_argument(
2012-04-28 23:18:56 +00:00
"-d", dest='staticdir', default=None, type=str,
2012-04-28 00:42:03 +00:00
help='Directory for static files.'
)
2012-04-28 23:18:56 +00:00
parser.add_argument(
"-s", dest='ssl', default=False,
action="store_true",
help='Serve with SSL.'
)
parser.add_argument(
"--keyfile", dest='ssl_keyfile', default=None,
type=str,
help='SSL key file. If not specified, a default key is used.'
)
parser.add_argument(
"--certfile", dest='ssl_certfile', default=None,
type=str,
help='SSL cert file. If not specified, a default cert is used.'
)
2012-04-28 00:42:03 +00:00
args = parser.parse_args()
2012-04-29 00:05:38 +00:00
settings = dict(
staticdir=args.staticdir
)
application = pathod.PathodApp(**settings)
2012-04-29 00:05:38 +00:00
for i in args.anchors:
try:
rex, spec = utils.parse_anchor_spec(i, settings)
except utils.AnchorError, v:
parser.error(str(v))
application.add_anchor(rex, spec)
2012-04-28 00:42:03 +00:00
2012-04-28 23:18:56 +00:00
if args.ssl:
ssl = dict(
keyfile = args.ssl_keyfile or utils.data.path("resources/server.key"),
certfile = args.ssl_certfile or utils.data.path("resources/server.crt"),
)
else:
ssl = None
2012-04-29 09:41:56 +00:00
print "%s listening on port %s"%(version.NAMEVERSION, args.port)
2012-04-28 00:42:03 +00:00
try:
pathod.run(application, args.port, ssl)
2012-04-28 00:42:03 +00:00
except KeyboardInterrupt:
pass