Files
agentic-coding-workflow/.githooks/pre-commit
T

33 lines
1.0 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Format staged Go files.
STAGED_GO=$(git diff --cached --name-only --diff-filter=ACM | grep '\.go$' || true)
if [ -n "$STAGED_GO" ]; then
echo "$STAGED_GO" | while IFS= read -r f; do
gofmt -w "$f"
git add "$f"
done
fi
# Lint and format staged web source files. Paths are repo-root relative; we
# strip the leading "web/" so tooling runs inside the web workspace.
cd web
STAGED_WEB_SRC=$(git diff --cached --name-only --diff-filter=ACM | grep -E '^web/src/.*\.(ts|tsx|vue|js|jsx|mjs)$' || true)
if [ -n "$STAGED_WEB_SRC" ]; then
echo "$STAGED_WEB_SRC" | sed 's|^web/||' | while IFS= read -r f; do
pnpm exec eslint --fix "$f"
pnpm exec prettier --write "$f"
git add "../web/$f"
done
fi
STAGED_WEB_FMT=$(git diff --cached --name-only --diff-filter=ACM | grep -E '^web/.*\.(css|scss|json|md|yaml|yml)$' || true)
if [ -n "$STAGED_WEB_FMT" ]; then
echo "$STAGED_WEB_FMT" | sed 's|^web/||' | while IFS= read -r f; do
pnpm exec prettier --write "$f"
git add "../web/$f"
done
fi