chore: auto manifest on version bump; local manual script only

contrib/manifest/generate.py + pre-commit hook; install-git-hooks.sh creates
.local/build-release-manifest.sh (gitignored). Remove scripts/ from remote.
This commit is contained in:
2026-07-08 12:05:21 +10:00
parent 0399a6d384
commit 5ac4792c3c
10 changed files with 253 additions and 113 deletions
+31
View File
@@ -0,0 +1,31 @@
#!/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"