#!/usr/bin/env bash set -euo pipefail TARGET_PROJECT="propane-will-491900-m5" REPO_ROOT="${REPO_ROOT:-$HOME/OSVauco}" GITEA_SERVICE="${GITEA_SERVICE:-gitea}" GREEN="\033[0;32m" RED="\033[0;31m" YELLOW="\033[1;33m" NC="\033[0m" check() { local label="$1" local cmd="$2" echo -n "$label: " if eval "$cmd" >/dev/null 2>&1; then echo -e "${GREEN}OK${NC}" else echo -e "${RED}FAIL${NC}" return 1 fi } warn() { local label="$1" local cmd="$2" local msg="$3" echo -n "$label: " if eval "$cmd" >/dev/null 2>&1; then echo -e "${GREEN}OK${NC}" else echo -e "${YELLOW}WARN${NC} - $msg" fi } echo "=== PREFLIGHT: $(hostname) ===" echo "User: $USER" echo "Home: $HOME" echo "Repo root: $REPO_ROOT" echo "Target project:$TARGET_PROJECT" echo "Gitea service: $GITEA_SERVICE" echo check "Repo exists" "[ -d \"$REPO_ROOT\" ]" check "gcloud auth active" "gcloud auth list --filter=status:ACTIVE --format='value(account)' | grep -q ." check "ADC token (metadata)" "gcloud auth application-default print-access-token >/dev/null 2>&1" check "gcloud config project" "[ \"\$(gcloud config get-value project 2>/dev/null)\" = \"$TARGET_PROJECT\" ]" check "Shell GOOGLE_CLOUD_PROJECT" "[ \"\${GOOGLE_CLOUD_PROJECT:-}\" = \"$TARGET_PROJECT\" ]" warn "Systemd manager env" "systemctl show-environment | grep -q \"GOOGLE_CLOUD_PROJECT=$TARGET_PROJECT\"" "not in manager env (unit overrides may still work)" if [ -f "$REPO_ROOT/.env" ]; then echo -e "Env file: ${GREEN}OK${NC} - using .env" elif [ -f "$REPO_ROOT/.env.prefilled" ]; then echo -e "Env file: ${YELLOW}WARN${NC} - .env missing, but .env.prefilled exists" elif [ -f "$REPO_ROOT/.env.example" ]; then echo -e "Env file: ${YELLOW}WARN${NC} - only .env.example exists" else echo -e "Env file: ${RED}FAIL${NC} - no .env, .env.prefilled, or .env.example found" exit 1 fi warn "Git clean" "git -C \"$REPO_ROOT\" diff --quiet && git -C \"$REPO_ROOT\" diff --cached --quiet" "working tree has local changes" check "Gitea service active" "systemctl is-active --quiet \"$GITEA_SERVICE\"" check "Gemini CLI in PATH" "command -v gemini >/dev/null 2>&1" echo echo "Preflight complete."