168 lines
4.2 KiB
Bash
168 lines
4.2 KiB
Bash
#!/usr/bin/env bash
|
||
# OSVauco OPAX boot — med session-logg, GitHub-sjekk og fargekodet statuslinje
|
||
|
||
set -euo pipefail
|
||
|
||
PROJECT_ID="propane-will-491900-m5"
|
||
REGION="us-central1"
|
||
ACCOUNT="chris.christiansen@vauco.no"
|
||
REPO="OSVauco"
|
||
BRANCH="main"
|
||
# Phase 2 LIVE: pinger produksjonsdomene, ikke intern Cloud Run-URL
|
||
PING_URL="https://opax.vauco.no/ping"
|
||
|
||
LOG_FILE="$HOME/OSVauco/docs/OSVAUCO_OPAX_SESSION_LOG.md"
|
||
DOCS_DIR="$HOME/OSVauco/docs"
|
||
|
||
GREEN="$(tput setaf 2 || true)"
|
||
RED="$(tput setaf 1 || true)"
|
||
YELLOW="$(tput setaf 3 || true)"
|
||
BLUE="$(tput setaf 4 || true)"
|
||
BOLD="$(tput bold || true)"
|
||
RESET="$(tput sgr0 || true)"
|
||
|
||
SESSION_ID="$(date '+%Y%m%d-%H%M%S')"
|
||
|
||
step() {
|
||
local label="$1"
|
||
printf " ${BLUE}›${RESET} %-45s" "$label"
|
||
}
|
||
|
||
done_ok() {
|
||
echo " ${GREEN}[OK]${RESET}"
|
||
}
|
||
|
||
done_info() {
|
||
echo " ${BLUE}[INFO]${RESET}"
|
||
}
|
||
|
||
done_fail() {
|
||
echo " ${RED}[FAIL]${RESET}"
|
||
}
|
||
|
||
# Fjern Cloud Shell-velkomst ved å rydde skjermen før banneret
|
||
clear || true
|
||
|
||
echo "============================================================"
|
||
echo " ${BOLD}O S V A U C O · O P A X${RESET}"
|
||
echo "============================================================"
|
||
echo
|
||
|
||
echo "Boot-script for OPAX-MCP (Cloud Run)"
|
||
echo
|
||
|
||
echo " Project : $PROJECT_ID"
|
||
echo " Region : $REGION"
|
||
echo " Account : $ACCOUNT"
|
||
echo " Repo : $REPO ($BRANCH)"
|
||
echo " Session : $SESSION_ID"
|
||
echo " HUB_URL : $PING_URL"
|
||
echo
|
||
|
||
# Vis siste NESTE OPPGAVE fra session-logg
|
||
if [ -f "$LOG_FILE" ]; then
|
||
LAST_LINE=$(tail -n 1 "$LOG_FILE" || true)
|
||
# Prøv å finne siste NESTE OPPGAVE-blokk
|
||
NESTE=$(awk '/^## NESTE OPPGAVE/{found=1; next} found && /^## /{found=0} found{print}' "$LOG_FILE" | tail -5 || true)
|
||
else
|
||
LAST_LINE="(ingen tidligere sesjoner logget ennå)"
|
||
NESTE=""
|
||
fi
|
||
|
||
echo " Forrige : $LAST_LINE"
|
||
if [ -n "$NESTE" ]; then
|
||
echo
|
||
echo " ${GREEN}${BOLD}▶ NESTE OPPGAVE:${RESET}"
|
||
echo "$NESTE" | while IFS= read -r line; do
|
||
echo " ${GREEN}$line${RESET}"
|
||
done
|
||
else
|
||
echo " ${YELLOW}⚠️ Ingen NESTE OPPGAVE funnet — sjekk docs/VAUCO_OS_ROADMAP.md${RESET}"
|
||
fi
|
||
echo
|
||
|
||
# Vis enkel changelog-oversikt for docs/
|
||
step "Siste endringer i docs/ (git log)"
|
||
if command -v git >/dev/null 2>&1 && [ -d "$DOCS_DIR" ]; then
|
||
git -C "$HOME/OSVauco" log -5 --pretty='format:%C(yellow)%h%Creset %Cgreen%cd%Creset %C(bold)%s%Creset' --date=short -- docs 2>/dev/null || true
|
||
echo
|
||
done_info
|
||
else
|
||
echo " (git eller docs/-mappe ikke tilgjengelig)"
|
||
done_info
|
||
fi
|
||
|
||
echo
|
||
|
||
OPAX_OK=0
|
||
GH_OK=0
|
||
|
||
# 1) Healthcheck mot OPAX-MCP produksjonsdomene
|
||
step "Tester OPAX-MCP på: $PING_URL"
|
||
if curl -fsS "$PING_URL" >/dev/null 2>&1; then
|
||
OPAX_OK=1
|
||
done_ok
|
||
echo " ${GREEN}✅ OPAX-MCP: OK — https://opax.vauco.no${RESET}"
|
||
else
|
||
done_fail
|
||
echo " ${RED}❌ OPAX-MCP: FEIL – sjekk Cloud Run / DNS${RESET}"
|
||
fi
|
||
|
||
echo
|
||
|
||
# 2) GitHub CLI-status
|
||
step "Sjekker GitHub-innlogging (gh auth status)"
|
||
if command -v gh >/dev/null 2>&1; then
|
||
if gh auth status >/dev/null 2>&1; then
|
||
GH_OK=1
|
||
done_ok
|
||
else
|
||
done_info
|
||
echo " ${YELLOW}ℹ️ gh ikke logget inn — kjør 'gh auth login' senere hvis du trenger GitHub-CLI.${RESET}"
|
||
fi
|
||
else
|
||
done_info
|
||
echo " ${YELLOW}ℹ️ 'gh' ikke installert i denne shellen.${RESET}"
|
||
fi
|
||
|
||
echo
|
||
|
||
mkdir -p "$(dirname "$LOG_FILE")"
|
||
|
||
# 3) Session-logg
|
||
step "Logger sesjon til OSVAUCO_OPAX_SESSION_LOG.md"
|
||
SESSION_DESC="${OSV_OPAX_SESSION_DESC:-"(ingen beskrivelse)"}"
|
||
|
||
echo "$SESSION_ID | $PROJECT_ID | $REGION | $ACCOUNT | OPAX=$OPAX_OK | GH=$GH_OK | $SESSION_DESC" >> "$LOG_FILE" && done_ok || done_fail
|
||
|
||
echo " Logg : ${GREEN}oppdatert${RESET} → $LOG_FILE"
|
||
|
||
echo
|
||
|
||
# 4) Oppsummering
|
||
if [ "$OPAX_OK" -eq 1 ] && [ "$GH_OK" -eq 1 ]; then
|
||
echo " ${GREEN}▶ OSVAUCO/OPAX READY — opax.vauco.no + GitHub verifisert.${RESET}"
|
||
elif [ "$OPAX_OK" -eq 1 ]; then
|
||
echo " ${GREEN}▶ OSVAUCO/OPAX READY — opax.vauco.no OK. GitHub CLI ikke aktiv.${RESET}"
|
||
else
|
||
echo " ${RED}▶ OSVAUCO/OPAX PARTIAL — sjekk status over før du jobber videre.${RESET}"
|
||
fi
|
||
|
||
echo
|
||
|
||
# 5) Valgfri Gemini-oppstart
|
||
step "Starte Gemini-CLI i ~/OSVauco?"
|
||
read -r -p " [y/N]: " ANSWER
|
||
case "$ANSWER" in
|
||
y|Y)
|
||
done_ok
|
||
echo "[OSVauco/OPAX] Starter Gemini-CLI..."
|
||
cd "$HOME/OSVauco"
|
||
gemini
|
||
;;
|
||
*)
|
||
done_info
|
||
echo "[OSVauco/OPAX] OK, holder deg i shell. Kjør 'gemini' når du vil inn i TUI."
|
||
;;
|
||
esac
|