Files
proxmox/scripts/load-env.sh

45 lines
1.3 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -euo pipefail
# Standardized .env loader function
# This ensures all scripts use the same ~/.env file consistently
# Load environment variables from ~/.env file
# Usage: source load-env.sh or . load-env.sh
load_env_file() {
local env_file="${HOME}/.env"
if [[ -f "$env_file" ]]; then
# Source PROXMOX_* variables from ~/.env
set -a
source <(grep -E "^PROXMOX_" "$env_file" 2>/dev/null | sed 's/^/export /' || true)
set +a
# Ensure PROXMOX_TOKEN_SECRET is set from PROXMOX_TOKEN_VALUE for backwards compatibility
if [[ -z "${PROXMOX_TOKEN_SECRET:-}" ]] && [[ -n "${PROXMOX_TOKEN_VALUE:-}" ]]; then
export PROXMOX_TOKEN_SECRET="${PROXMOX_TOKEN_VALUE}"
fi
return 0
else
return 1
fi
}
# Auto-load if sourced directly
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
# Script is being executed directly
load_env_file
if [[ $? -eq 0 ]]; then
echo "✅ Loaded environment from ~/.env"
echo "PROXMOX_HOST=${PROXMOX_HOST:-not set}"
echo "PROXMOX_USER=${PROXMOX_USER:-not set}"
echo "PROXMOX_TOKEN_NAME=${PROXMOX_TOKEN_NAME:-not set}"
echo "PROXMOX_TOKEN_VALUE=${PROXMOX_TOKEN_VALUE:+***configured***}"
else
echo "❌ ~/.env file not found"
exit 1
fi
fi