Files
WeKnora/scripts/install-git-hooks.sh
T
lyingbug 5780cb0a71 fix(sandbox): separate file access from artifact publishing (#3356)
* fix(sandbox): separate file access from artifact publishing

* test(sandbox): align service coverage and pre-push checks with CI
2026-09-17 16:18:01 +08:00

33 lines
923 B
Bash
Executable File

#!/usr/bin/env bash
# Install WeKnora git hooks (core.hooksPath -> scripts/git-hooks).
#
# Usage (from repo root):
# ./scripts/install-git-hooks.sh
#
# Bypass hooks for one command:
# SKIP_HOOKS=1 git commit ...
# SKIP_HOOKS=1 git push ...
#
# Skip slow go test on pre-push:
# HOOK_SKIP_TEST=1 git push ...
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
HOOKS_DIR="$ROOT/scripts/git-hooks"
if [[ ! -d "$HOOKS_DIR" ]]; then
echo "hooks directory not found: $HOOKS_DIR" >&2
exit 1
fi
chmod +x "$HOOKS_DIR"/common.sh "$HOOKS_DIR"/pre-commit "$HOOKS_DIR"/pre-push
git -C "$ROOT" config core.hooksPath scripts/git-hooks
echo "Installed git hooks -> scripts/git-hooks"
echo " pre-commit: whitespace, gofmt (auto-fix), golangci-lint (if installed)"
echo " pre-push: PR gofmt + full app go vet/test/build (like CI)"
echo ""
echo "Optional: SKIP_HOOKS=1 or HOOK_SKIP_TEST=1 — see script header."