| bindings="" | |
| # Function to extract variable names from the TypeScript interface | |
| extract_env_vars() { | |
| grep -o '[A-Z_]\+:' worker-configuration.d.ts | sed 's/://' | |
| } | |
| # First try to read from .env.local if it exists | |
| if [ -f ".env.local" ]; then | |
| while IFS= read -r line || [ -n "$line" ]; do | |
| if [[ ! "$line" =~ ^# ]] && [[ -n "$line" ]]; then | |
| name=$(echo "$line" | cut -d '=' -f 1) | |
| value=$(echo "$line" | cut -d '=' -f 2-) | |
| value=$(echo $value | sed 's/^"\(.*\)"$/\1/') | |
| bindings+="--binding ${name}=${value} " | |
| fi | |
| done < .env.local | |
| else | |
| # If .env.local doesn't exist, use environment variables defined in .d.ts | |
| env_vars=($(extract_env_vars)) | |
| # Generate bindings for each environment variable if it exists | |
| for var in "${env_vars[@]}"; do | |
| if [ -n "${!var}" ]; then | |
| bindings+="--binding ${var}=${!var} " | |
| fi | |
| done | |
| fi | |
| bindings=$(echo $bindings | sed 's/[[:space:]]*$//') | |
| echo $bindings |