set -euo pipefail
RUFF=""
if command -v uv >/dev/null 2>&1; then
RUFF="uv run ruff"
elif command -v ruff >/dev/null 2>&1; then
RUFF="ruff"
fi
if [ -z "$RUFF" ]; then
echo " skipping ruff check (uv/ruff not installed)" >&2
exit 0
fi
pyprojs=()
while IFS= read -r -d '' p; do
pyprojs+=("$p")
done < <(find packages -maxdepth 2 -name pyproject.toml -print0 2>/dev/null)
if [ "${#pyprojs[@]}" -eq 0 ] && [ -f pyproject.toml ]; then
pyprojs=("./pyproject.toml")
fi
if [ "${#pyprojs[@]}" -eq 0 ]; then
echo " skipping ruff check (no pyproject.toml found)"
exit 0
fi
rc=0
for pyproj in "${pyprojs[@]}"; do
pkg_dir=$(dirname "$pyproj")
echo " Python: $RUFF check $pkg_dir"
if ! (cd "$pkg_dir" && $RUFF check .); then
rc=1
fi
done
exit "$rc"