- Add ADR-0012 documenting the decision to format only staged Go files - Update ADR README.md with new entry - Document rationale, alternatives, and verification results - Include future considerations for monitoring and CI/CD integration Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
43 lines
973 B
Bash
Executable File
43 lines
973 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# DanceLessonsCoach pre-commit hook
|
|
# Runs go mod tidy and go fmt before allowing commits
|
|
|
|
echo "Running pre-commit hooks..."
|
|
|
|
# Check if we're in a Go project
|
|
if [ ! -f "go.mod" ]; then
|
|
echo "Not a Go project, skipping hooks"
|
|
exit 0
|
|
fi
|
|
|
|
# Run go mod tidy
|
|
echo "Running go mod tidy..."
|
|
go mod tidy
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: go mod tidy failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if go.mod or go.sum were modified
|
|
if git diff --cached --name-only | grep -qE '(go\.mod|go\.sum)'; then
|
|
echo "go.mod or go.sum changed, adding to commit..."
|
|
git add go.mod go.sum
|
|
fi
|
|
|
|
# Run go fmt on all Go files
|
|
echo "Running go fmt..."
|
|
GOFILES=$(find . -name '*.go' -not -path "./vendor/*" -not -path "./.git/*")
|
|
if [ -n "$GOFILES" ]; then
|
|
gofmt -w $GOFILES
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: go fmt failed"
|
|
exit 1
|
|
fi
|
|
|
|
# Add formatted files to commit
|
|
git add $GOFILES
|
|
fi
|
|
|
|
echo "Pre-commit hooks completed successfully"
|
|
exit 0 |