chore: import upstream snapshot with attribution
Book-CI / test (macos-latest) (push) Has been cancelled
Book-CI / test (ubuntu-latest) (push) Has been cancelled
Book-CI / test (windows-latest) (push) Has been cancelled
Release Fake Tag / publish (push) Has been cancelled
Deploy / deploy (macos-latest) (push) Has been cancelled
Deploy / deploy (ubuntu-latest) (push) Has been cancelled
Deploy / deploy (windows-latest) (push) Has been cancelled
Release to PyPI / Build & publish sglang-kt (push) Has been cancelled
Release to PyPI / Build kt-kernel (Python 3.11) (push) Has been cancelled
Release to PyPI / Build kt-kernel (Python 3.12) (push) Has been cancelled
Release to PyPI / Publish kt-kernel to PyPI (push) Has been cancelled
Book-CI / test (macos-latest) (push) Has been cancelled
Book-CI / test (ubuntu-latest) (push) Has been cancelled
Book-CI / test (windows-latest) (push) Has been cancelled
Release Fake Tag / publish (push) Has been cancelled
Deploy / deploy (macos-latest) (push) Has been cancelled
Deploy / deploy (ubuntu-latest) (push) Has been cancelled
Deploy / deploy (windows-latest) (push) Has been cancelled
Release to PyPI / Build & publish sglang-kt (push) Has been cancelled
Release to PyPI / Build kt-kernel (Python 3.11) (push) Has been cancelled
Release to PyPI / Build kt-kernel (Python 3.12) (push) Has been cancelled
Release to PyPI / Publish kt-kernel to PyPI (push) Has been cancelled
This commit is contained in:
Executable
+57
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env sh
|
||||
# Install git hooks from kt-kernel/.githooks into the monorepo's .git/hooks by
|
||||
# creating symlinks (or copying if symlink fails).
|
||||
|
||||
set -eu
|
||||
|
||||
# This script lives in kt-kernel/scripts/, so REPO_ROOT = kt-kernel
|
||||
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
HOOKS_SRC="$REPO_ROOT/.githooks"
|
||||
|
||||
# Detect the top-level Git worktree (the monorepo root: ktransformers)
|
||||
GIT_TOP="$(git rev-parse --show-toplevel 2>/dev/null || true)"
|
||||
if [ -z "$GIT_TOP" ] || [ ! -d "$GIT_TOP/.git" ]; then
|
||||
echo "[install-git-hooks] Not inside a git worktree; skipping hooks installation." >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
GIT_DIR="$GIT_TOP/.git"
|
||||
HOOKS_DEST="$GIT_DIR/hooks"
|
||||
|
||||
if [ ! -d "$HOOKS_SRC" ]; then
|
||||
echo "[install-git-hooks] No .githooks directory found at $HOOKS_SRC" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[install-git-hooks] Installing git hooks from $HOOKS_SRC to $HOOKS_DEST (repo: $GIT_TOP)"
|
||||
|
||||
# Ensure all source hook files are executable so that even if copied (not symlinked) they run.
|
||||
for src_hook in "$HOOKS_SRC"/*; do
|
||||
[ -f "$src_hook" ] || continue
|
||||
if [ ! -x "$src_hook" ]; then
|
||||
chmod +x "$src_hook" || true
|
||||
fi
|
||||
done
|
||||
|
||||
for hook in "$HOOKS_SRC"/*; do
|
||||
[ -e "$hook" ] || continue
|
||||
name=$(basename "$hook")
|
||||
dest="$HOOKS_DEST/$name"
|
||||
|
||||
# Remove existing hook if it's our symlink or a file
|
||||
if [ -L "$dest" ] || [ -f "$dest" ]; then
|
||||
rm -f "$dest"
|
||||
fi
|
||||
|
||||
# Try symlink first
|
||||
if ln -s "$hook" "$dest" 2>/dev/null; then
|
||||
echo "linked $name"
|
||||
else
|
||||
# Fall back to copying and preserve executable bit
|
||||
cp "$hook" "$dest"
|
||||
chmod +x "$dest"
|
||||
echo "copied $name"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[install-git-hooks] Done. Hooks installed."
|
||||
Reference in New Issue
Block a user