40 lines
1.2 KiB
Bash
Executable File
40 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Environment configuration loader
|
|
# Usage: source "$SCRIPT_DIR/lib/config/env.sh"
|
|
|
|
# Source paths if not already sourced
|
|
[ -z "${PROJECT_ROOT:-}" ] && source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/../common/paths.sh"
|
|
|
|
# Default subscription ID
|
|
DEFAULT_SUBSCRIPTION_ID="${DEFAULT_SUBSCRIPTION_ID:-fc08d829-4f14-413d-ab27-ce024425db0b}"
|
|
|
|
# Load environment variables from .env file
|
|
load_env() {
|
|
local env_file="${1:-${PROJECT_ROOT}/.env}"
|
|
|
|
if [ -f "$env_file" ]; then
|
|
# Export variables, ignoring comments and empty lines.
|
|
# Disable set -e so a failing command in .env (e.g. command substitution) does not exit the shell.
|
|
set -a
|
|
set +e
|
|
source <(grep -v '^#' "$env_file" | grep -v '^$' | sed 's/^/export /') 2>/dev/null || true
|
|
set -e
|
|
set +a
|
|
fi
|
|
}
|
|
|
|
# Get Azure subscription ID
|
|
get_subscription_id() {
|
|
echo "${AZURE_SUBSCRIPTION_ID:-${DEFAULT_SUBSCRIPTION_ID}}"
|
|
}
|
|
|
|
# Set Azure subscription
|
|
set_subscription() {
|
|
local subscription_id="${1:-$(get_subscription_id)}"
|
|
az account set --subscription "$subscription_id" &> /dev/null || return 1
|
|
}
|
|
|
|
# Auto-load env if PROJECT_ROOT is set
|
|
[ -n "${PROJECT_ROOT:-}" ] && load_env
|
|
|