import os,pathlib,json,sys,subprocess,signal
root=pathlib.Path('/tmp/lead-32342-r1/evidence-capture');side=sys.argv[1]
prior=root/'metro-private.json'
if prior.exists():
 m=json.loads(prior.read_text())
 try:os.killpg(m['pid'],signal.SIGINT)
 except ProcessLookupError:pass
if side=='stop':sys.exit()
run=pathlib.Path((root/(side+'-run.txt')).read_text());meta=json.loads((run/'private.json').read_text())
log=run/'metro.raw.log'
env=dict(os.environ,REACT_NATIVE_PACKAGER_HOSTNAME='fs-45.tail131df4.ts.net')
p=subprocess.Popen(['vp','run','dev:client','--port','8081'],cwd=meta['checkout']+'/apps/mobile',env=env,stdout=open(log,'a'),stderr=subprocess.STDOUT,start_new_session=True)
prior.write_text(json.dumps(dict(pid=p.pid,side=side,log=str(log))))
print('Started Metro',side,'pid',p.pid)
