Files
ssh-monitor/contrib/install-git-hooks.sh
T

32 lines
1.1 KiB
Bash

#!/bin/bash
# Установка git hooks и локального скрипта ручной генерации manifest (не в git).
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
HOOK_SRC="$ROOT/contrib/hooks/pre-commit"
HOOK_DST="$ROOT/.git/hooks/pre-commit"
LOCAL_DIR="$ROOT/.local"
LOCAL_SCRIPT="$LOCAL_DIR/build-release-manifest.sh"
if [ ! -d "$ROOT/.git" ]; then
echo "ERROR: не git-репозиторий: $ROOT" >&2
exit 1
fi
mkdir -p "$LOCAL_DIR"
cat >"$LOCAL_SCRIPT" <<'EOF'
#!/bin/bash
# Локальный wrapper (не коммитится). Ручная генерация manifest.
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel)"
exec python3 "$ROOT/contrib/manifest/generate.py" "$@"
EOF
chmod +x "$LOCAL_SCRIPT"
cp "$HOOK_SRC" "$HOOK_DST"
chmod +x "$HOOK_DST"
echo "OK: pre-commit hook → $HOOK_DST"
echo "OK: ручной скрипт → $LOCAL_SCRIPT (в .gitignore, не уйдёт в Gitea/GitHub)"
echo "После clone: ./contrib/install-git-hooks.sh или .\\contrib\\install-git-hooks.ps1 (Windows)"