#!/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)"