#!/usr/bin/env bash set -e echo "๐Ÿ”ง Google Cloud ADC Setup Script" echo "--------------------------------" # 1๏ธโƒฃ Check OS if ! command -v apt >/dev/null; then echo "โŒ This script currently supports apt-based systems only." exit 1 fi # 2๏ธโƒฃ Install gcloud if missing if ! command -v gcloud >/dev/null; then echo "๐Ÿ“ฆ Google Cloud SDK not found. Installing..." sudo apt update sudo apt install -y apt-transport-https ca-certificates gnupg curl curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \ | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] \ https://packages.cloud.google.com/apt cloud-sdk main" \ | sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list sudo apt update sudo apt install -y google-cloud-sdk echo "โœ… Google Cloud SDK installed" else echo "โœ… Google Cloud SDK already installed" fi # 3๏ธโƒฃ ADC login with scopes echo echo "๐Ÿ” Starting Application Default Credentials login..." echo "โ„น๏ธ Authenticating with Google Sheets and Drive scopes..." # Check for existing client secrets DEFAULT_SECRET=$(find whoa -name "client_secret_181713295829-toc6bsk6hak3rdd6huaer6kp06eq7529.apps.googleusercontent.com.json" -print -quit 2>/dev/null) read -rp "๐Ÿ”‘ Enter path to client_secret.json [${DEFAULT_SECRET:-none}]: " CLIENT_SECRET_INPUT CLIENT_SECRET=${CLIENT_SECRET_INPUT:-$DEFAULT_SECRET} OPTS="" if [[ -n "$CLIENT_SECRET" && -f "$CLIENT_SECRET" ]]; then echo "Using client secret: $CLIENT_SECRET" OPTS="--client-id-file=$CLIENT_SECRET" else echo "โš ๏ธ No client secret provided. You may see 'This app is blocked' errors." fi gcloud auth application-default login $OPTS \ --scopes=https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive.readonly,https://www.googleapis.com/auth/drive.file,https://www.googleapis.com/auth/cloud-platform echo "โœ… ADC login complete" # 4๏ธโƒฃ Ask for project ID echo read -rp "๐Ÿงพ Enter your GCP Project ID [elvoro-483807]: " PROJECT_ID PROJECT_ID=${PROJECT_ID:-elvoro-483807} if [[ -z "$PROJECT_ID" ]]; then echo "โŒ Project ID cannot be empty" exit 1 fi # 5๏ธโƒฃ Set quota project echo echo "๐Ÿ“Š Setting quota project to '$PROJECT_ID'..." gcloud auth application-default set-quota-project "$PROJECT_ID" # 6๏ธโƒฃ Optional: set default project echo read -rp "โš™๏ธ Set this as default gcloud project? [Y/n]: " SET_DEFAULT SET_DEFAULT=${SET_DEFAULT:-Y} if [[ "$SET_DEFAULT" =~ ^[Yy]$ ]]; then gcloud config set project "$PROJECT_ID" fi # 7๏ธโƒฃ Verify echo echo "๐Ÿงช Verifying ADC setup..." python3 - <