blob: 7ab0a6f53cffecdff830492823c6a4fe87337deb [file]
#!/usr/bin/env bash
# Sync docs from apache/magpie into src/content/docs/
# Runs as prebuild step and locally via `npm run sync-docs`.
set -euo pipefail
REPO="${MAGPIE_DOCS_REPO:-https://github.com/apache/magpie.git}"
BRANCH="${MAGPIE_DOCS_BRANCH:-main}"
DEST="$(dirname "$0")/../src/content/docs"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
echo "→ Cloning $REPO@$BRANCH (sparse, docs/ + images/ + skills/)"
git clone --depth 1 --branch "$BRANCH" --filter=blob:none --sparse "$REPO" "$TMP" >/dev/null 2>&1
(cd "$TMP" && git sparse-checkout set docs images skills >/dev/null)
echo "→ Replacing $DEST"
rm -rf "$DEST"
mkdir -p "$DEST"
cp -r "$TMP/docs/." "$DEST/"
ASSET_DEST="$(dirname "$0")/../public/docs-assets"
echo "→ Syncing images to $ASSET_DEST"
rm -rf "$ASSET_DEST"
if [ -d "$TMP/images" ]; then
mkdir -p "$ASSET_DEST"
cp -r "$TMP/images/." "$ASSET_DEST/"
fi
echo "→ Rewriting image refs in markdown (../../images → /docs-assets, ../images → /docs-assets)"
# perl -i is portable across GNU/Linux and BSD/macOS (sed -i differs between them)
find "$DEST" -name '*.md' -exec perl -pi -e '
s{\.\./\.\./images/}{/docs-assets/}g;
s{\.\./images/}{/docs-assets/}g;
s{\(images/}{(/docs-assets/}g;
' {} +
count=$(find "$DEST" -name '*.md' | wc -l)
echo "✓ Synced $count markdown files into $DEST"
COUNTS_OUT="$(dirname "$0")/../src/data/skill-counts.json"
echo "→ Generating skill-family counts → $COUNTS_OUT"
mkdir -p "$(dirname "$COUNTS_OUT")"
if [ -d "$TMP/skills" ]; then
node "$(dirname "$0")/gen-skill-counts.mjs" "$TMP/skills" "$COUNTS_OUT"
else
echo "⚠ no skills/ in framework checkout; leaving existing $COUNTS_OUT untouched"
fi