add .env support to build-and-copy.sh
This commit is contained in:
@@ -1,5 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Load .env file if exists (for shared configuration)
|
||||
# This is called early so that DOTENV_* variables are available to all functions
|
||||
load_env_if_exists() {
|
||||
local env_file="${CONFIG_FILE:-}"
|
||||
|
||||
# If CONFIG_FILE is not set, check default location
|
||||
if [[ -z "$env_file" ]]; then
|
||||
local script_dir="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
env_file="$script_dir/.env"
|
||||
fi
|
||||
|
||||
if [[ -f "$env_file" ]]; then
|
||||
# Load .env variables with DOTENV_ prefix
|
||||
while IFS='=' read -r key value || [[ -n "$key" ]]; do
|
||||
# Skip comments and empty lines
|
||||
[[ "$key" =~ ^[[:space:]]*# ]] && continue
|
||||
[[ -z "$key" ]] && continue
|
||||
|
||||
# Remove leading/trailing whitespace from key
|
||||
key=$(echo "$key" | xargs)
|
||||
|
||||
# Skip if key is empty after trimming
|
||||
[[ -z "$key" ]] && continue
|
||||
|
||||
# Remove quotes from value
|
||||
value="${value%\"}"
|
||||
value="${value#\"}"
|
||||
value="${value%\'}"
|
||||
value="${value#\'}"
|
||||
|
||||
# Export with DOTENV_ prefix
|
||||
export "DOTENV_$key=$value"
|
||||
done < "$env_file"
|
||||
fi
|
||||
}
|
||||
|
||||
# Load .env file
|
||||
load_env_if_exists
|
||||
|
||||
# Function to detect IB and Ethernet interfaces
|
||||
detect_interfaces() {
|
||||
# If both interfaces are already set, nothing to do
|
||||
@@ -110,6 +149,19 @@ detect_nodes() {
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Try to use COPY_HOSTS from .env
|
||||
if [[ -n "$DOTENV_COPY_HOSTS" ]]; then
|
||||
echo " Using COPY_HOSTS from .env: $DOTENV_COPY_HOSTS"
|
||||
PEER_NODES=()
|
||||
IFS=',' read -ra ALL_NODES <<< "$DOTENV_COPY_HOSTS"
|
||||
for node in "${ALL_NODES[@]}"; do
|
||||
node=$(echo "$node" | xargs)
|
||||
PEER_NODES+=("$node")
|
||||
done
|
||||
NODES_ARG="$DOTENV_COPY_HOSTS"
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Auto-detecting nodes..."
|
||||
|
||||
|
||||
Reference in New Issue
Block a user