[pypy-commit] jitviewer argparse-collect: Add argparse support.
vext01
noreply at buildbot.pypy.org
Thu Sep 5 17:09:47 CEST 2013
Author: Edd Barrett <vext01 at 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
More information about the pypy-commit
mailing list