Author: Edd Barrett <vex...@gmail.com> Branch: argparse-collect Changeset: r232:b85bf2cf7df0 Date: 2013-08-30 17:55 +0100 http://bitbucket.org/pypy/jitviewer/changeset/b85bf2cf7df0/
Log: Add argparse support. diff --git a/_jitviewer/app.py b/_jitviewer/app.py --- a/_jitviewer/app.py +++ b/_jitviewer/app.py @@ -19,6 +19,7 @@ import sys import os.path +import argparse try: import pypy @@ -194,16 +195,15 @@ orig___init__(self2, *args, **kwds) BaseServer.__init__ = __init__ -def collect_log(interp, args, logpath="log.pypylog"): +def collect_log(args, logpath="log.pypylog"): """ Collect a log file using pypy """ # XXX Randomise log file name # XXX Search path import subprocess - print("prog: %s args: %s" % (interp, args)) - p = subprocess.Popen([interp] + args, + p = subprocess.Popen(args, env={"PYPYLOG" : "jit-log-opt,jit-backend:%s" % (logpath, )} ) p.communicate() @@ -215,39 +215,28 @@ if not '__pypy__' in sys.builtin_module_names: print "Please run it using pypy-c" sys.exit(1) - # - # XXX use argparse - server_mode = True - collect_mode = False - if '--qt' in argv: - server_mode = False - argv.remove('--qt') - if '--collect' in argv: - prog_args = argv[argv.index('--collect')+1:] - prog = prog_args[0] - args = prog_args[1:] - collect_mode = True - argv.remove('--collect') - # - if not collect_mode and len(argv) != 2 and len(argv) != 3: - print __doc__ - sys.exit(1) - if collect_mode: - print("YO COLLECT MODE") - print(72 * ":") - filename = collect_log(prog, args) - port = 5000 # XXX ugh + parser = argparse.ArgumentParser() + + parser.add_argument("-l", "--log", help="Specify logfile") + parser.add_argument("-c", "--collect", nargs="*", help="Collect logfile now") + parser.add_argument("-p", "--port", help="Select HTTP port") + parser.add_argument("-q", "--qt", action="store_true", help="Use QT") + + args = parser.parse_args() + + if args.port is not None: + port = int(args.port) else: - print("FUDGE") - print(72 * ":") - # XXX we really need argparse, as we cant specify port if collecting now - filename = argv[1] + port = 5000 - if len(argv) != 3: - port = 5000 - else: - port = int(argv[2]) + if args.collect is not None: + if len(args.collect) == 0: + print("*Error: Please specify invokation to collect log") + sys.exit(1) + filename = collect_log(args.collect) + else: + filename = args.log extra_path = os.path.dirname(filename) storage = LoopStorage(extra_path) @@ -266,7 +255,7 @@ def run(): app.run(use_reloader=bool(os.environ.get('JITVIEWER_USE_RELOADER', False)), host='0.0.0.0', port=port) - if server_mode: + if not args.qt: run() else: url = "http://localhost:%d/" % port _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit