58c789d5f8
Co-authored-by: Cursor <cursoragent@cursor.com>
68 lines
1.9 KiB
Bash
68 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Публикация wiki/ в Gitea Wiki
|
|
#
|
|
# Способ 1 — токен (рекомендуется):
|
|
# export GITEA_TOKEN=ваш_токен
|
|
#
|
|
# Способ 2 — логин и пароль (не передавайте в чат, только в терминале):
|
|
# export GITEA_USER=логин
|
|
# export GITEA_PASSWORD=пароль
|
|
#
|
|
# bash scripts/push-wiki.sh
|
|
set -euo pipefail
|
|
|
|
GITEA_WIKI_URL="${GITEA_WIKI_URL:-https://git.evilfox.cc/test/shop10.wiki.git}"
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
WIKI_SRC="${REPO_ROOT}/wiki"
|
|
TMPDIR="${TMPDIR:-/tmp}/shop-wiki-$$"
|
|
|
|
if [ ! -d "$WIKI_SRC" ]; then
|
|
echo "Нет каталога wiki/"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${GITEA_TOKEN:-}" ] && { [ -z "${GITEA_USER:-}" ] || [ -z "${GITEA_PASSWORD:-}" ]; }; then
|
|
echo "Задайте GITEA_TOKEN или пару GITEA_USER + GITEA_PASSWORD"
|
|
exit 1
|
|
fi
|
|
|
|
cleanup() { rm -rf "$TMPDIR"; }
|
|
trap cleanup EXIT
|
|
|
|
HOST_PATH="${GITEA_WIKI_URL#https://}"
|
|
HOST_PATH="${HOST_PATH#http://}"
|
|
|
|
if [ -n "${GITEA_TOKEN:-}" ]; then
|
|
CLONE_URL="https://${GITEA_TOKEN}@${HOST_PATH}"
|
|
else
|
|
# URL-encode не делаем — пароль без спецсимволов; иначе используйте токен
|
|
CLONE_URL="https://${GITEA_USER}:${GITEA_PASSWORD}@${HOST_PATH}"
|
|
fi
|
|
|
|
mkdir -p "$TMPDIR"
|
|
cd "$TMPDIR"
|
|
|
|
if git clone "$CLONE_URL" . 2>/dev/null; then
|
|
echo "Wiki репозиторий склонирован."
|
|
else
|
|
echo "Инициализация нового wiki репозитория..."
|
|
git init -b main
|
|
git remote add origin "$CLONE_URL"
|
|
fi
|
|
|
|
rsync -a --delete "${WIKI_SRC}/" ./
|
|
|
|
git add -A
|
|
if git diff --staged --quiet 2>/dev/null; then
|
|
echo "Wiki без изменений."
|
|
exit 0
|
|
fi
|
|
|
|
git config user.email "wiki@shop.local"
|
|
git config user.name "Shop Wiki"
|
|
git commit -m "docs: установка Docker и без Docker (v0.10.0)"
|
|
git push -u origin main
|
|
|
|
echo ""
|
|
echo "Готово: https://git.evilfox.cc/test/shop10/wiki"
|