#!/usr/bin/env python3
import subprocess,pathlib,concurrent.futures,datetime,json
root=pathlib.Path(__file__).resolve().parent
session=root/('matrix-'+datetime.datetime.now(datetime.timezone.utc).strftime('%Y-%m-%dT%H-%M-%SZ'))
session.mkdir()
def run(side,row):
 checkout='/home/user/wt/pr-33263'+('-before' if side=='before' else '')
 output=session/(row+'-'+side+'-stdout.log')
 with output.open('w') as f:r=subprocess.run(['node',str(root/'capture.ts'),checkout,side,row],stdout=f,stderr=subprocess.STDOUT)
 result={'row':row,'side':side,'exitCode':r.returncode,'output':str(output)}
 print(json.dumps(result),flush=True)
 return result
results=[]
for row in ['R2','R4','R5','R6','R7','R8','R3','R9']:
 with concurrent.futures.ThreadPoolExecutor(max_workers=2) as pool:
  futures=[pool.submit(run,side,row) for side in ['before','after']]
  results.extend(f.result() for f in futures)
(session/'results.json').write_text(json.dumps(results,indent=2)+'\n')
