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