Commit a7e0a644 authored by Vincent Pelletier's avatar Vincent Pelletier

Add support for reading state data from stdin.

parent 6f7c77f3
...@@ -993,10 +993,12 @@ def main(): ...@@ -993,10 +993,12 @@ def main():
parser.add_argument('-Q', dest='extra_quiet', action='store_true', parser.add_argument('-Q', dest='extra_quiet', action='store_true',
help='Suppress progress indication (file being parsed, lines counter). ' help='Suppress progress indication (file being parsed, lines counter). '
'Does not imply -q.') 'Does not imply -q.')
parser.add_argument('--state-file', nargs='+', default=[], type=file, parser.add_argument('--state-file', nargs='+', default=[],
help='Use given JSON files as initial state. Mixing files generated with ' help='Use given JSON files as initial state. Use - for stdin. Loading'
'different parameters is allowed, but no correction is made. Output may ' 'multiple files through stdin is not possible). Mixing '
'be unusable (ex: different --apdex, different --period, ...).') 'files generated with different parameters is allowed, but no '
'correction is made. Output may be unusable (ex: different --apdex, '
'different --period, ...).')
group = parser.add_argument_group('generated content') group = parser.add_argument_group('generated content')
group.add_argument('-a', '--apdex', default=1.0, type=float, group.add_argument('-a', '--apdex', default=1.0, type=float,
...@@ -1132,8 +1134,16 @@ def main(): ...@@ -1132,8 +1134,16 @@ def main():
error_detail = args.error_detail error_detail = args.error_detail
file_count = len(infile_list) file_count = len(infile_list)
per_site = {} per_site = {}
for state_file in args.state_file: if '-' in args.state_file and '-' in infile_list:
print >> sys.stderr, 'Loading', state_file.name, '...', print >> sys.stderr, 'stdin cannot be used both as log and state input.'
sys.exit(1)
for state_file_name in args.state_file:
print >> sys.stderr, 'Loading', state_file_name, '...',
if state_file_name == '-':
state_file = sys.stdin
else:
state_file = open(state_file_name)
with state_file:
load_start = time.time() load_start = time.time()
state = json.load(state_file, encoding='ascii') state = json.load(state_file, encoding='ascii')
for url, site_state in state: for url, site_state in state:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment