From 58c789d5f8c474352bc016cdd3c00cb16f2d3203 Mon Sep 17 00:00:00 2001 From: shop Date: Sun, 17 May 2026 09:52:33 +0300 Subject: [PATCH] =?UTF-8?q?chore:=20push-wiki=20=E2=80=94=20=D0=B0=D0=B2?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D1=83=20=D0=B8=D0=BB?= =?UTF-8?q?=D0=B8=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BD=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- scripts/push-wiki.sh | 54 ++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/scripts/push-wiki.sh b/scripts/push-wiki.sh index 6f3bafd..e1f5d18 100644 --- a/scripts/push-wiki.sh +++ b/scripts/push-wiki.sh @@ -1,7 +1,13 @@ #!/bin/bash # Публикация wiki/ в Gitea Wiki -# Использование: -# export GITEA_TOKEN=токен # или настройте git credentials +# +# Способ 1 — токен (рекомендуется): +# export GITEA_TOKEN=ваш_токен +# +# Способ 2 — логин и пароль (не передавайте в чат, только в терминале): +# export GITEA_USER=логин +# export GITEA_PASSWORD=пароль +# # bash scripts/push-wiki.sh set -euo pipefail @@ -15,31 +21,39 @@ if [ ! -d "$WIKI_SRC" ]; then 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}@${GITEA_WIKI_URL#https://}" + CLONE_URL="https://${GITEA_TOKEN}@${HOST_PATH}" else - CLONE_URL="$GITEA_WIKI_URL" + # URL-encode не делаем — пароль без спецсимволов; иначе используйте токен + CLONE_URL="https://${GITEA_USER}:${GITEA_PASSWORD}@${HOST_PATH}" fi -if git clone "$CLONE_URL" "$TMPDIR" 2>/dev/null; then - : -else - echo "Клонирование wiki (первый раз)..." - mkdir -p "$TMPDIR" - cd "$TMPDIR" - git init - git remote add origin "$CLONE_URL" - cd - -fi - -rsync -a --delete "${WIKI_SRC}/" "${TMPDIR}/" - +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; then +if git diff --staged --quiet 2>/dev/null; then echo "Wiki без изменений." exit 0 fi @@ -47,7 +61,7 @@ fi git config user.email "wiki@shop.local" git config user.name "Shop Wiki" git commit -m "docs: установка Docker и без Docker (v0.10.0)" -git branch -M main 2>/dev/null || true git push -u origin main -echo "Wiki опубликована: https://git.evilfox.cc/test/shop10/wiki" +echo "" +echo "Готово: https://git.evilfox.cc/test/shop10/wiki"