import json, os, pathlib, subprocess, sys, time
root = pathlib.Path('artifacts/structure-refactor-20260915/scoped-packing')
old = root.with_name('scoped-ownership')
name = sys.argv[1]
args = json.loads((root / f'{name}.command.json').read_text())
env = dict(os.environ, RAYON_NUM_THREADS='8', RUST_LOG='info')
start = time.monotonic()
with (root / f'{name}.log').open('w') as log:
    proc = subprocess.Popen(args, stdout=log, stderr=subprocess.STDOUT, env=env)
    _, status, usage = os.wait4(proc.pid, 0)
    proc.returncode = os.waitstatus_to_exitcode(status)
result = dict(exit_code=proc.returncode, seconds=time.monotonic()-start, peak_rss_kib=usage.ru_maxrss)
package = pathlib.Path(args[args.index('--package')+1])
prior = old / package.name
if proc.returncode == 0 and prior.is_file():
    result['package_identical'] = subprocess.run(['cmp', '-s', str(prior), str(package)]).returncode == 0
(root / f'{name}.result.json').write_text(json.dumps(result, indent=2)+'\n')
print(name, json.dumps(result), flush=True)
sys.exit(proc.returncode)
