#!/bin/sh
set -eu
R=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
CLI=${KICAD_CLI:-/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli}
PY=${KICAD_PYTHON:-/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3}
O=$(mktemp -d /tmp/a111-cad.XXXXXX)
trap 'rm -rf "$O"' EXIT
"$PY" "$R/check_saved_board.py"
"$CLI" sch erc --severity-all --format json -o "$O/erc.json" "$R/cad/vacuum_control_evt_a5_logic_fet.kicad_sch"
"$CLI" pcb drc --severity-all --all-track-errors --schematic-parity --format json -o "$O/drc.json" "$R/cad/vacuum_control_evt_a5_logic_fet.kicad_pcb"
python3 - "$O" <<'CHECK'
import json,sys
from pathlib import Path
p=Path(sys.argv[1]);e=json.loads((p/'erc.json').read_text());d=json.loads((p/'drc.json').read_text())
assert not [v for s in e['sheets'] for v in s['violations']]
assert not d['violations'] and not d['unconnected_items']
assert len(d['schematic_parity'])==4
assert all(v['type']=='extra_footprint' and any(i['description'] in ['Footprint MH1','Footprint MH2','Footprint MH3','Footprint MH4'] for i in v['items']) for v in d['schematic_parity'])
print('PASS nativeERC/DRC/unconnected zero; baseline4 mechanical-hole parity only')
CHECK
sh "$R/firmware/固件/vacuum_target/test.sh"
sh "$R/firmware/固件/vacuum_target/build.sh"
