.PHONY: fmt fmt-check clippy test-local test-debugger-socket clean coverage coverage-xml coverage-json coverage-report-json coverage-domain-list coverage-domain-evidence coverage-domain-gate test ci ci-domains cobertura

fmt:
	cargo fmt

fmt-check:
	cargo fmt -- --check

clippy:
	cargo clippy --workspace --all-features

test-local:
	cargo test --workspace --all-targets --all-features --no-fail-fast

test-debugger-socket:
	cargo test -p prometeu-host-desktop-winit --lib -- --ignored

clean:
	cargo llvm-cov clean --workspace

coverage:
	cargo llvm-cov --workspace --all-features --html --output-dir target/llvm-cov

coverage-report-json:
	cargo llvm-cov report --json --output-path target/llvm-cov/report.json

coverage-xml:
	cargo llvm-cov report --cobertura --output-path target/llvm-cov/cobertura.xml

coverage-json:
	cargo llvm-cov report --json --summary-only --output-path target/llvm-cov/summary.json

coverage-domain-list:
	./scripts/coverage-domain-evidence.sh --list

coverage-domain-evidence:
	@if [ -z "$(DOMAIN)" ]; then \
		echo "usage: make coverage-domain-evidence DOMAIN=<domain>"; \
		exit 1; \
	fi
	./scripts/coverage-domain-evidence.sh "$(DOMAIN)"

coverage-domain-gate:
	./scripts/coverage-domain-evidence.sh --check-all

test: fmt-check clippy test-local test-debugger-socket
ci: clean fmt-check clippy coverage coverage-report-json
ci-domains: clean fmt-check clippy coverage coverage-report-json coverage-xml coverage-json coverage-domain-gate
cobertura: coverage-xml coverage-json
