Files
pi_mcps/docs/wiki/deploy_wiki.sh
Patrick Plate dabdda167f docs(wiki): migrate to git-based workflow with persistent wiki/ clone
- Extract all wiki content from create_wiki_pages.py into docs/wiki/pages/*.md
- Add docs/wiki/deploy_wiki.sh: copies pages to wiki/ repo, commits, pushes
- Add /wiki/ to .gitignore (anchored — does not affect docs/wiki/)
- 12 pages: Home, MCP-Servers-Overview, mcp-image-gen, ComfyUI-Setup,
  mcp-webscraper (8 tools incl. search_hint), BigMind (schema v8),
  Development-Conventions, Java-Projects, Java-wellmann-shop,
  Java-mss-failsafe, Java-Architecture, _Sidebar
- Workflow: edit docs/wiki/pages/*.md → ./docs/wiki/deploy_wiki.sh
2026-04-05 09:48:19 +02:00

91 lines
4.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# deploy_wiki.sh — Sync docs/wiki/pages/*.md to the local wiki git clone
#
# ── Convention ────────────────────────────────────────────────────────────────
# The Gitea wiki is a SEPARATE git repo (pi_mcps.wiki.git).
# We keep a persistent local clone at wiki/ in the repo root.
# That folder is gitignored so it doesn't conflict with the main repo.
#
# First-time setup (run once):
# git clone http://pplate:TOKEN@192.168.188.119:30008/pplate/pi_mcps.wiki.git wiki/
#
# ── Daily workflow ────────────────────────────────────────────────────────────
# 1. Edit pages in docs/wiki/pages/*.md (tracked in pi_mcps main repo)
# 2. Run: ./docs/wiki/deploy_wiki.sh
# ./docs/wiki/deploy_wiki.sh "docs: describe your change"
#
# The script copies pages into wiki/, commits, and pushes to Gitea.
# ─────────────────────────────────────────────────────────────────────────────
set -euo pipefail
# ── Config ────────────────────────────────────────────────────────────────────
GITEA_URL="http://192.168.188.119:30008"
OWNER="pplate"
REPO="pi_mcps"
# Resolve paths relative to repo root (two levels up from docs/wiki/)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
PAGES_DIR="${SCRIPT_DIR}/pages"
WIKI_DIR="${REPO_ROOT}/wiki"
COMMIT_MSG="${1:-docs: sync wiki pages $(date -u '+%Y-%m-%d %H:%M UTC')}"
# ── Validate ──────────────────────────────────────────────────────────────────
if [[ ! -d "${WIKI_DIR}/.git" ]]; then
echo "❌ Wiki repo not set up. Run first-time setup:"
echo ""
echo " TOKEN=8bf0c734ebda3e61d9c9068489ce58a2bf8d33db"
echo " git clone http://pplate:\${TOKEN}@192.168.188.119:30008/pplate/pi_mcps.wiki.git wiki/"
echo ""
exit 1
fi
if [[ ! -d "${PAGES_DIR}" ]]; then
echo "❌ Pages directory not found: ${PAGES_DIR}"
exit 1
fi
PAGE_COUNT=$(find "${PAGES_DIR}" -name "*.md" | wc -l)
if [[ "${PAGE_COUNT}" -eq 0 ]]; then
echo "❌ No .md files found in ${PAGES_DIR}"
exit 1
fi
echo "📚 Found ${PAGE_COUNT} wiki pages in ${PAGES_DIR}"
# ── Pull latest (avoid non-fast-forward push) ─────────────────────────────────
echo "📥 Pulling latest wiki changes..."
git -C "${WIKI_DIR}" pull --quiet --rebase origin main
# ── Copy pages ────────────────────────────────────────────────────────────────
echo "📋 Copying pages to ${WIKI_DIR}/..."
for md_file in "${PAGES_DIR}"/*.md; do
filename="$(basename "${md_file}")"
cp "${md_file}" "${WIKI_DIR}/${filename}"
echo "${filename}"
done
# ── Commit and push ───────────────────────────────────────────────────────────
cd "${WIKI_DIR}"
git add -A
if git diff --cached --quiet; then
echo "✅ No changes detected — wiki is already up to date."
exit 0
fi
CHANGED=$(git diff --cached --name-only | wc -l)
echo "📝 Committing ${CHANGED} changed file(s)..."
git commit --quiet -m "${COMMIT_MSG}"
echo "🚀 Pushing to Gitea wiki..."
git push --quiet origin main
echo ""
echo "✅ Wiki deployed successfully!"
echo " Pages: ${PAGE_COUNT} total, ${CHANGED} updated"
echo " Message: ${COMMIT_MSG}"
echo " URL: ${GITEA_URL}/${OWNER}/${REPO}/wiki"