#!/usr/bin/env bash
# Reusable TOM build helper: reuse .venv_cad's build123d/OCP/ezdxf, but shadow the
# stale main-branch cadpy with the DEVELOP src packages via PYTHONPATH.
# Usage: tom_build.sh <generator.py> <out.urdf>   (paths relative to the tom v2 dir)
set -uo pipefail
DEV=/data/cameron/repos/ttc-develop
V2="$DEV/models/robots/tom/v2"
PY=/data/cameron/repos/cad_experiments/.venv_cad/bin/python
URDF_SKILL="$DEV/skills/urdf/scripts/urdf"

GEN="${1:-tom.py}"
OUT="${2:-tom_regen.urdf}"

export PYTHONPATH="/data/cameron/repos/smith300_para_stuff/tom_patch:$DEV/packages/cadpy/src:$DEV/packages/cadpy_metadata/src${PYTHONPATH:+:$PYTHONPATH}"
export XDG_CACHE_HOME="$V2/.cache"
mkdir -p "$XDG_CACHE_HOME"
cd "$V2" || exit 3

echo "=== toolchain resolution ==="
"$PY" - <<'PY'
import importlib
for m in ("cadpy","cadpy_metadata","build123d","ezdxf"):
    try:
        mod=importlib.import_module(m)
        print(f"  OK   {m:16s} {getattr(mod,'__version__','?'):8} {mod.__file__}")
    except Exception as e:
        print(f"  FAIL {m:16s} {type(e).__name__}: {e}")
PY

echo "=== generating $OUT from $GEN ==="
"$PY" "$URDF_SKILL" "${GEN}=${OUT}"
rc=$?
echo "skill_exit=$rc"
[ -f "$V2/$OUT" ] && { echo "WROTE $V2/$OUT"; wc -l "$V2/$OUT"; } || echo "NO OUTPUT FILE"
exit $rc
