import os, sys, pathlib, subprocess, datetime, json
root=pathlib.Path('/tmp/lead-32924-r1/evidence-capture')
run=root/('servers-'+datetime.datetime.now(datetime.timezone.utc).strftime('%Y%m%dT%H%M%SZ'))
run.mkdir()
processes={}
for side,checkout in [('before','/home/user/wt/pr-32924-before'),('after','/home/user/wt/pr-32924')]:
    env=dict(os.environ, T3CODE_DEV_SEED='0', T3CODE_BUNDLED_DEV='0', T3CODE_AUTO_BOOTSTRAP_PROJECT_FROM_CWD='false')
    for key in ['VITE_HTTP_URL','VITE_WS_URL','T3CODE_DEV_AUTH_TOKEN']:
        env.pop(key,None)
    home=run/(side+'-home')
    logfile=run/(side+'-server.log')
    with logfile.open('w') as log:
        proc=subprocess.Popen(['vp','run','dev','--home-dir',str(home)],cwd=checkout,env=env,stdout=log,stderr=subprocess.STDOUT,start_new_session=True)
    processes[side]={'pid':proc.pid,'checkout':checkout,'home':str(home),'log':str(logfile)}
(run/'processes.json').write_text(json.dumps(processes,indent=2))
(root/'active-servers.json').write_text(json.dumps({'run':str(run),**processes},indent=2))
print(json.dumps({'run':str(run),**processes},indent=2))
