Drogheda/03-Architecture-Hardware/Auditoria-Final-V56-V57/scripts/verify_mac.sh

27 lines
1.5 KiB
Bash
Executable File

#!/bin/zsh
# uso: verify.sh v56 hbox-watchdog-v5 | verify.sh v57 hbox-watchdog-v57
set -e
KC=/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli
PY=/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3
A="$(cd "$(dirname "$0")" && pwd)"; D="$A/$1"; S="$2"
cd "$D"
echo "== DRC (parity + refill) $S"
"$KC" pcb drc --schematic-parity --refill-zones --severity-all --format json -o "drc-$1.json" "$S.kicad_pcb" >/dev/null 2>&1 || true
"$PY" - "drc-$1.json" <<'PYEOF'
import json,sys
d=json.load(open(sys.argv[1]))
from collections import Counter
print("violations:",len(d.get("violations",[])), Counter((v["type"],v["severity"]) for v in d.get("violations",[])))
print("unconnected:",len(d.get("unconnected_items",[])), "parity:",len(d.get("schematic_parity",[])), Counter(v["type"] for v in d.get("schematic_parity",[])))
PYEOF
echo "== gerber as-saved"
rm -rf gerber-saved; mkdir gerber-saved
"$KC" pcb export gerbers --subtract-soldermask --no-protel-ext -o gerber-saved/ "$S.kicad_pcb" >/dev/null
"$KC" pcb export drill --excellon-separate-th -o gerber-saved/ "$S.kicad_pcb" >/dev/null
echo "== refill copy + gerber"
rm -rf rf; mkdir rf; cp "$S".kicad_pcb "$S".kicad_pro "$S".kicad_prl "$S".kicad_dru fp-lib-table sym-lib-table rf/ 2>/dev/null || true; cp -R Drogheda.pretty Drogheda-v6.pretty rf/
"$PY" "$A/refill.py" "rf/$S.kicad_pcb"
mkdir -p rf/gerber
"$KC" pcb export gerbers --subtract-soldermask --no-protel-ext -o rf/gerber/ "rf/$S.kicad_pcb" >/dev/null
echo "== done $1"; ls gerber-saved | wc -l; ls rf/gerber | wc -l