import argparse
import datetime
import json
import os
from pathlib import Path
import subprocess

root = Path('/tmp/issue-lead-26950-r1/evidence-capture-2')
parser = argparse.ArgumentParser()
parser.add_argument('--sides', nargs='+', choices=['before', 'after'], default=['before', 'after'])
parser.add_argument('--tag', default=datetime.datetime.now(datetime.timezone.utc).strftime('%Y%m%d-%H%M%S'))
args = parser.parse_args()
run = root / ('servers-' + args.tag)
run.mkdir(exist_ok=False)
servers = {}
for side in args.sides:
    checkout = '/home/ubuntu/wt/issue-26950-' + side + '2'
    expected = '6d450a4284' if side == 'before' else '5c1c8b0004'
    sha = subprocess.check_output(['git', '-C', checkout, 'rev-parse', 'HEAD'], text=True).strip()
    if not sha.startswith(expected):
        raise RuntimeError('Wrong revision: ' + sha)
    home = run / (side + '-home')
    with (run / (side + '-server.log')).open('w') as log:
        proc = subprocess.Popen(['vp', 'run', 'dev', '--home-dir', str(home)], cwd=checkout,
            env={**os.environ, 'T3CODE_DEV_SEED': '0'}, stdout=log,
            stderr=subprocess.STDOUT, start_new_session=True)
    servers[side] = {'pid': proc.pid, 'cwd': checkout, 'home': str(home), 'sha': sha}
(run / 'servers-private.json').write_text(json.dumps(servers, indent=2))
print(json.dumps({'run': str(run), 'servers': servers}, indent=2))
