Files
smom-dbis-138/scripts/deployment/check-dapp-env.sh
2026-03-02 12:14:09 -08:00

60 lines
1.6 KiB
Bash
Executable File

#!/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