#!/usr/bin/env bash set -euo pipefail source ./scripts/Unix/starter.sh report="" while [ "$#" -gt 0 ]; do case "$1" in --report|-r) if [ "${2-}" = "" ]; then echo "Error: --report/-r requires an argument: xml or html" >&2 exit 1 fi report="$2" shift 2 ;; --report=*) report="${1#*=}" shift ;; -r=*) report="${1#*=}" shift ;; *) echo "Unknown argument: $1" >&2 echo "Usage: $0 [--report|-r xml|html]" >&2 exit 1 ;; esac done case "${report:-}" in "") docker compose exec app uv run coverage erase docker compose exec app uv run coverage run --source='.' --omit='storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,evibes/*' manage.py test docker compose exec app uv run coverage report -m ;; xml) docker compose exec app uv run coverage xml --omit='storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,evibes/*' ;; html) docker compose exec app uv run coverage html --omit='storefront/*,monitoring/*,Dockerfiles/*,*/__init__.py,*/tests/*,*/migrations/*,manage.py,evibes/*' ;; *) echo "Invalid report type: $report (expected xml or html)" >&2 exit 1 ;; esac