#!/usr/bin/env bash # shadow-rs pre-commit hook — runs fmt check and clippy in Docker. # Install: ./hooks/install.sh # # Fast checks only (no full test suite — that's pre-push). # Runs in ~5s on a warm Docker cache. set -euo pipefail RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' echo "pre-commit: checking formatting..." if ! docker compose run --rm -T debian cargo fmt --all --check 2>&1; then echo -e "${RED}FAILED${NC}: cargo fmt --all --check" echo "Run: docker compose run --rm debian cargo fmt --all" exit 1 fi echo "pre-commit: running clippy..." if ! docker compose run --rm -T debian cargo clippy --workspace --all-targets -- -D warnings 2>&1; then echo -e "${RED}FAILED${NC}: cargo clippy" exit 1 fi echo -e "${GREEN}pre-commit: all checks passed${NC}"