set -euo pipefail
[ -n "${GIT_HOOKS_SKIP:-}" ] && exit 0
PREV_HEAD="${1:-}"
NEW_HEAD="${2:-}"
IS_BRANCH_CHECKOUT="${3:-}"
if [ "$IS_BRANCH_CHECKOUT" = "1" ] && [ "$PREV_HEAD" != "$NEW_HEAD" ]; then
CHANGED=$(git diff --name-only "$PREV_HEAD" "$NEW_HEAD" 2>/dev/null || true)
grep -q "^Cargo\.lock$" <<<"$CHANGED" && echo "📦 Cargo.lock changed — run: cargo build"
grep -q "^bun\.lockb\?$" <<<"$CHANGED" && echo "📦 bun.lock changed — run: bun install"
grep -q "^uv\.lock$" <<<"$CHANGED" && echo "📦 uv.lock changed — run: uv sync"
grep -q "^flake\.lock$" <<<"$CHANGED" && echo "📦 flake.lock changed — exit and re-enter: nix develop"
fi
LOCAL_HOOK="$(git rev-parse --show-toplevel)/.git-hooks/local-post-checkout"
if [ -x "$LOCAL_HOOK" ]; then
exec "$LOCAL_HOOK" "$@"
fi
exit 0