from pathlib import Path
import subprocess
import sys

sys.path.insert(0, 'tools/dev')
import checks
from argparse import Namespace

paths = ['autoload/game_state.gd', 'scripts/core/debug_panel.gd', 'scripts/core/dive_map.gd', 'scripts/core/loc.gd']
original = {name: Path(name).read_bytes() for name in paths}
baseline = {name: subprocess.run(['git', 'show', 'HEAD:' + name], check=True, capture_output=True).stdout for name in paths}
checks.GODOT['smoke_only'] = checks.GODOT['gameplay']
args = Namespace(area=['smoke_only'], full=False, match=None, plan=False, seed=1709, fixture=None, timeout=120, baseline=None)
try:
    for name in paths:
        Path(name).write_bytes(baseline[name])
    print('BASELINE BEFORE DEBUG CHANGE', flush=True)
    checks.run_checks(args)
finally:
    for name in paths:
        assert Path(name).read_bytes() == baseline[name], 'Concurrent change: ' + name
        Path(name).write_bytes(original[name])
print('CURRENT DEBUG CHANGE', flush=True)
checks.run_checks(args)
