2026-03-02 11:37:34 -08:00
|
|
|
#!/usr/bin/env bash
|
2026-02-12 15:46:57 -08:00
|
|
|
set -euo pipefail
|
|
|
|
|
|
2025-12-21 22:32:09 -08:00
|
|
|
# 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
|
|
|
|
|
|