resq-cli 0.3.0

Developer CLI for the ResQ autonomous drone platform
Documentation
#!/usr/bin/env bash
# Repo-specific pre-push — runs alongside the canonical ResQ pre-push hook.
# Generated by `resq dev scaffold-local-hook --kind python`.
#
# Iterates pyproject.toml files under packages/ (or the repo root) and runs
# ruff per-package so we don't depend on a root-level pyproject.toml.
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

# Find pyproject.toml — prefer per-package layout, fall back to root.
# Avoid `mapfile` so this works on macOS's default Bash 3.2.
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"