#!/usr/bin/env bash
set -euo pipefail

: "${GCP_PROJECT_ID:?}"
: "${GCP_ZONE:?}"
: "${INSTANCE_NAME:?}"
timeout_seconds="${BOOTSTRAP_TIMEOUT:-1800}"
deadline=$((SECONDS + timeout_seconds))

while ((SECONDS < deadline)); do
  status="$(gcloud compute instances describe "$INSTANCE_NAME" \
    --project "$GCP_PROJECT_ID" --zone "$GCP_ZONE" \
    --format='value(status)' 2>/dev/null || true)"
  if [[ "$status" == "RUNNING" ]] && gcloud compute instances get-serial-port-output "$INSTANCE_NAME" \
      --project "$GCP_PROJECT_ID" --zone "$GCP_ZONE" --port=1 2>/dev/null | \
      grep -q 'DATE_INTEGRATION_BOOTSTRAP_READY'; then
    exit 0
  fi
  sleep 10
done

echo "Timed out waiting for GCP bootstrap marker on $INSTANCE_NAME" >&2
exit 1
