rust-bitcoin-unsafe-fast/githooks/post-merge

36 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# === RUST-BITCOIN GITHOOK ===
# Scan the githooks after merge. If the user is using any of the rust-bitcoin githooks and they have changed, let them know
# to rerun the githooks setup.
# We only care about this on master
[[ "$(git branch --show-current)" = "master" ]] || exit
# Get the local githooks directory, regardless of configuration.
GIT_DIR=$(git rev-parse --git-common-dir)
HOOKS_DIR=$(git config --get core.hooksPath || echo "$GIT_DIR/hooks")
# Scan each of the hooks looking for the tag. If the tag is found, then the user is using a
# rust-bitcoin githook. We should compare them to the repo's hooks to see if they have
# changed in the latest git pull.
for hook in "$HOOKS_DIR"/*
do
if grep -q '=== RUST-BITCOIN GITHOOK ===' "$hook"; then
BN=$(basename "$hook")
if ! cmp --quiet "$hook" "githooks/$BN"; then
>&2 cat <<- EOF
==================================================
Project githooks have changed. Please inspect the
changes and re-run \`just githooks-install\` if
they are legitimate.
Remove $HOOKS_DIR/post-merge to skip this warning
in the future.
==================================================
EOF
exit
fi
fi
done