#!/usr/bin/env bash # Check that .env has the VITE_* (and related) vars needed for frontend-dapp production build. # Usage: ./scripts/deployment/check-dapp-env.sh [path-to-.env] # Exit 0 if all required are set; exit 1 and list missing if not. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" ENV_FILE="${1:-$REPO_ROOT/.env}" get_var() { local name="$1" if [[ ! -f "$ENV_FILE" ]]; then echo "" return fi local line line="$(grep -E "^(export[[:space:]]+)?${name}=" "$ENV_FILE" 2>/dev/null | head -1)" if [[ -n "$line" ]]; then echo "$line" | sed -E 's/^(export[[:space:]]+)?[^=]+=//' | sed 's/^["'\'' ]//;s/["'\'' ]$//' | xargs else echo "" fi } REQUIRED_FOR_BUILD=( "VITE_RPC_URL_138" ) OPTIONAL_BUT_RECOMMENDED=( "VITE_LOCKBOX_138" "VITE_INBOX_ETH_MAINNET" "VITE_LIQUIDITY_POOL_ETH_MAINNET" "VITE_DUAL_ROUTER_BRIDGE_SWAP_COORDINATOR" "VITE_CHALLENGE_MANAGER_MAINNET" "VITE_WALLETCONNECT_PROJECT_ID" "VITE_THIRDWEB_CLIENT_ID" ) missing=() for v in "${REQUIRED_FOR_BUILD[@]}"; do val="$(get_var "$v")" if [[ -z "$val" || "$val" == "0x..." || "$val" == "your-"* ]]; then missing+=("$v") fi done if [[ ${#missing[@]} -gt 0 ]]; then echo "Missing or placeholder required for DApp build: ${missing[*]}" echo "Set them in $ENV_FILE (or copy from .env.example and fill)." exit 1 fi echo "Required VITE_* for DApp build are set." for v in "${OPTIONAL_BUT_RECOMMENDED[@]}"; do val="$(get_var "$v")" if [[ -z "$val" || "$val" == "0x..." || "$val" == "your-"* ]]; then echo "Optional (recommended): $v" fi done exit 0