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"