OSVauco/scripts/sync-gdrive-mirror.sh

106 lines
4.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# sync-gdrive-mirror.sh
# Oppdaterer docs/GDRIVE_MIRROR_BOOT.md med fersk indeks + tidsstempel.
# Skriver .gdrive-mirror-state for å vise status i boot-dashboard.
# Kjøres manuelt: bash scripts/sync-gdrive-mirror.sh
set -euo pipefail
REPO_ROOT="$(git rev-parse --show-toplevel)"
OUTPUT="$REPO_ROOT/docs/GDRIVE_MIRROR_BOOT.md"
STATE_FILE="$REPO_ROOT/.gdrive-mirror-state"
TIMESTAMP=$(date '+%Y-%m-%dT%H:%M %Z')
SHA=$(git rev-parse --short HEAD)
echo "[sync-gdrive-mirror] Tidsstempel: $TIMESTAMP · HEAD: $SHA"
# ── Bygg header + staleness-varsel ─────────────────────────────────────────
cat > "$OUTPUT" << HEADER
# VAUCO OS — GDRIVE MIRROR BOOT
> **CONNECTOR-PRIORITET:**
> \`\`\`
> GITHUB > GOOGLE DRIVE
> \`\`\`
> GitHub (\`OSVauco/main/docs/AGENT_RULEBOOK.md\`) er **alltid** ground truth.
> Denne filen er auto-generert av \`sync-gdrive-mirror.sh\`.
> Ved enhver konflikt: stol på GitHub. Oppdater ved å kjøre scriptet på nytt.
---
## ⚠️ STALENESS-VARSEL — LES DETTE FØRST
\`\`\`
╔══════════════════════════════════════════════════════════════╗
║ SIST SYNKRONISERT: $TIMESTAMP ║
║ HEAD: $SHA ║
║ Kilde: OSVauco/main · Synkronisert av: sync-gdrive-mirror.sh ║
╠══════════════════════════════════════════════════════════════╣
║ ⚠️ TERSKEL: 12 TIMER (aktiv dev-runde) ║
║ HVIS MER ENN 12T HAR GÅTT: STOPP og verifiser mot GitHub ║
╠══════════════════════════════════════════════════════════════╣
║ VERIFISER: https://github.com/chrischristiansen-glitch/ ║
║ OSVauco/blob/main/docs/AGENT_RULEBOOK.md ║
╚══════════════════════════════════════════════════════════════╝
\`\`\`
---
## PROSJEKTINDEKS — AUTO-GENERERT $TIMESTAMP · HEAD $SHA
HEADER
# ── Legg inn TODO ──────────────────────────────────────────────────────────
if [[ -f "$REPO_ROOT/docs/TODO.md" ]]; then
echo -e "\n---\n\n## TODO\n" >> "$OUTPUT"
cat "$REPO_ROOT/docs/TODO.md" >> "$OUTPUT"
fi
if [[ -f "$REPO_ROOT/protocols/sessions/index.md" ]]; then
echo -e "\n---\n\n## SESJONSLOGG\n" >> "$OUTPUT"
cat "$REPO_ROOT/protocols/sessions/index.md" >> "$OUTPUT"
fi
if [[ -f "$REPO_ROOT/docs/VAUCO_OS_ROADMAP.md" ]]; then
echo -e "\n---\n\n## ROADMAP\n" >> "$OUTPUT"
cat "$REPO_ROOT/docs/VAUCO_OS_ROADMAP.md" >> "$OUTPUT"
fi
if [[ -f "$REPO_ROOT/docs/AGENT_RULEBOOK.md" ]]; then
echo -e "\n---\n\n## AGENT_RULEBOOK\n" >> "$OUTPUT"
cat "$REPO_ROOT/docs/AGENT_RULEBOOK.md" >> "$OUTPUT"
fi
if [[ -f "$REPO_ROOT/docs/LEARNINGS.md" ]]; then
echo -e "\n---\n\n## LEARNINGS — siste oppføringer\n" >> "$OUTPUT"
tail -60 "$REPO_ROOT/docs/LEARNINGS.md" >> "$OUTPUT"
fi
# ── Footer ────────────────────────────────────────────────────────────────
cat >> "$OUTPUT" << FOOTER
---
*Oppdater ved å kjøre: \`bash scripts/sync-gdrive-mirror.sh\` — last deretter opp til GDrive.*
**EOF · GDRIVE_MIRROR_BOOT · $TIMESTAMP · HEAD $SHA · auto-generert**
FOOTER
# ── Commit + push ─────────────────────────────────────────────────────────
cd "$REPO_ROOT"
git add docs/GDRIVE_MIRROR_BOOT.md
git commit -m "chore(docs): sync GDRIVE_MIRROR_BOOT $TIMESTAMP [HEAD $SHA]"
git push origin main
# ── Skriv state-fil ETTER push (SHA = ny commit-SHA) ─────────────────────
NEW_SHA=$(git rev-parse --short HEAD)
cat > "$STATE_FILE" << STATE
LAST_SYNC=$TIMESTAMP
LAST_SHA=$NEW_SHA
STATE
git add .gdrive-mirror-state
git commit -m "chore(state): oppdater .gdrive-mirror-state SHA=$NEW_SHA"
git push origin main
echo "[sync-gdrive-mirror] Ferdig. Last ned docs/GDRIVE_MIRROR_BOOT.md og erstatt i GDrive."