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