66 lines
2.2 KiB
Bash
66 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
# preflight.sh — alias 'pf'
|
|
# Sjekker auth, project, .env og git status
|
|
set -euo pipefail
|
|
|
|
GREEN="$(tput setaf 2)"; RED="$(tput setaf 1)"; YELLOW="$(tput setaf 3)"; NC="$(tput sgr0)"; BOLD="$(tput bold)"
|
|
|
|
ok() { printf " ${GREEN}✦ OK${NC} %s\n" "$1"; }
|
|
fail() { printf " ${RED}✗ FAIL${NC} %s\n" "$1"; }
|
|
warn() { printf " ${YELLOW}⚠ WARN${NC} %s\n" "$1"; }
|
|
|
|
printf "${BOLD}OSVauco Preflight${NC}\n"
|
|
printf "────────────────────────────────\n"
|
|
|
|
# 1. gcloud auth
|
|
if gcloud auth print-access-token >/dev/null 2>&1; then
|
|
ACCOUNT=$(gcloud auth list --filter=status:ACTIVE --format='value(account)' 2>/dev/null | head -1)
|
|
ok "gcloud auth ($ACCOUNT)"
|
|
else
|
|
fail "gcloud auth — ikke innlogget"
|
|
echo ""
|
|
echo " Kjør: gcloud auth login --no-launch-browser"
|
|
exit 1
|
|
fi
|
|
|
|
# 2. ADC
|
|
if gcloud auth application-default print-access-token >/dev/null 2>&1; then
|
|
ok "ADC (application-default)"
|
|
else
|
|
warn "ADC ikke satt — kjører: gcloud auth application-default login --no-launch-browser"
|
|
gcloud auth application-default login --no-launch-browser \
|
|
--scopes="https://www.googleapis.com/auth/cloud-platform"
|
|
fi
|
|
|
|
# 3. Prosjekt
|
|
PROJECT=$(gcloud config get-value project 2>/dev/null)
|
|
if [[ "$PROJECT" == "propane-will-491900-m5" ]]; then
|
|
ok "GCP project ($PROJECT)"
|
|
else
|
|
warn "Feil prosjekt: '$PROJECT' — setter til propane-will-491900-m5"
|
|
gcloud config set project propane-will-491900-m5
|
|
fi
|
|
|
|
# 4. .env
|
|
if [[ -f "$HOME/OSVauco/.env" ]]; then
|
|
ok ".env eksisterer"
|
|
else
|
|
fail ".env mangler — IKKE opprett fra .env.example"
|
|
echo " Hent fra Secret Manager:"
|
|
echo " gcloud secrets versions access latest --secret=osvauco-env --project=propane-will-491900-m5 > .env"
|
|
fi
|
|
|
|
# 5. Git status
|
|
cd "$HOME/OSVauco"
|
|
GIT_BRANCH=$(git branch --show-current 2>/dev/null)
|
|
GIT_DIRTY=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
|
|
if [[ "$GIT_BRANCH" == "main" ]]; then
|
|
ok "git branch (main)"
|
|
else
|
|
warn "git branch er '$GIT_BRANCH' — forventet main"
|
|
fi
|
|
[[ "$GIT_DIRTY" -gt 0 ]] && warn "$GIT_DIRTY ustaged endringer" || ok "git working tree (rent)"
|
|
|
|
printf "────────────────────────────────\n"
|
|
echo ""
|