Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 48s
Tests / Test (Go stable) (pull_request) Successful in 51s
27 lines
710 B
Bash
Executable File
27 lines
710 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# install.sh — symlinks the shared githooks (pre-push, pre-commit) into .git/hooks
|
|
# for this repository. Safe to run repeatedly.
|
|
#
|
|
# Usage:
|
|
# ./scripts/githooks/install.sh
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT="$(git rev-parse --show-toplevel)"
|
|
SRC="$ROOT/scripts/githooks"
|
|
HOOKS="$ROOT/.git/hooks"
|
|
|
|
mkdir -p "$HOOKS"
|
|
chmod +x "$SRC"/secret-scan.sh "$SRC"/pre-push "$SRC"/pre-commit
|
|
|
|
for h in pre-push pre-commit; do
|
|
if [[ -e "$HOOKS/$h" ]] && [[ ! -L "$HOOKS/$h" ]]; then
|
|
echo "error: $HOOKS/$h already exists and is not a symlink; remove it first" >&2
|
|
exit 1
|
|
fi
|
|
ln -sfn "$SRC/$h" "$HOOKS/$h"
|
|
echo "installed $h -> $SRC/$h"
|
|
done
|
|
echo "githooks installed for $(basename "$ROOT")"
|