#!/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" # ── Hent remote-endringer FØR vi skriver noe ────────────────────────────── echo "[sync-gdrive-mirror] Henter remote-endringer (rebase)..." # Håndter lokale unstaged endringer STASHED=0 if ! git diff --quiet; then echo "[sync-gdrive-mirror] Oppdaget lokale endringer, stash-er..." git stash -u -m "sync-gdrive-mirror-autosave" STASHED=1 fi git pull --rebase origin main # Pop stash hvis vi lagret noe if [[ $STASHED -eq 1 ]]; then echo "[sync-gdrive-mirror] Gjenoppretter lokale endringer..." if ! git stash pop; then echo "[sync-gdrive-mirror] ADVARSEL: Stash pop feilet. Sjekk for konflikter manuelt!" fi fi # ── 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/vauco-saas/ ║ ║ 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."