From 53c1e8bb7ea036094b25e5940c0a7f930d30365f Mon Sep 17 00:00:00 2001 From: Niall Byrne <9848926+niall-byrne@users.noreply.github.com> Date: Sat, 3 Aug 2024 13:42:21 -0400 Subject: [PATCH] feat(BASH): add env var override library --- cicd-tools/boxes/0.1.0.tar.gz | Bin 18332 -> 18725 bytes cicd-tools/boxes/0.1.0/libraries/override.sh | 82 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 cicd-tools/boxes/0.1.0/libraries/override.sh diff --git a/cicd-tools/boxes/0.1.0.tar.gz b/cicd-tools/boxes/0.1.0.tar.gz index 5477363d3cdc374986899d408702203c7689562b..0cca2d2c4dc3f16b24104c81bb79d8fedb8e576f 100644 GIT binary patch delta 18711 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 G2m$~jf0R=I delta 18308 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 You must specify the same number of OVERRIDE environment variables and OPTIONAL environment variables!" + exit 127 + fi +} + +_override_parse_overrides() { + log "DEBUG" "OVERRIDE > Parsing OVERRIDE environment variable values." + # shellcheck disable=SC2034 + IFS=' ' read -r -a OVERRIDES <<< "${1}" +} + +_override_parse_targets() { + log "DEBUG" "OVERRIDE > Parsing TARGET environment variable values." + # shellcheck disable=SC2034 + IFS=' ' read -r -a TARGETS <<< "${1}" +} + +_override_set_values() { + local INDEX=-1 + local OVERRIDE_VARIABLE + + for OVERRIDE_VARIABLE in "${OVERRIDES[@]}"; do + ((INDEX++)) || true + if [[ -z "${!OVERRIDE_VARIABLE}" ]]; then + log "DEBUG" "OVERRIDE > No override specified for '${OVERRIDE_VARIABLE}' ..." + else + eval "${TARGETS[${INDEX}]}"="${!OVERRIDE_VARIABLE}" + log "WARNING" "OVERRIDE > Variable '${TARGETS[${INDEX}]}' now overridden with '${!OVERRIDE_VARIABLE}' ..." + fi + done +} + +_override_usage() { + log "ERROR" "override.sh -- an interface to override internal values with environment variables." + log "ERROR" "-----------------------------------------------------------------------------------" + log "ERROR" "override.sh" + log "ERROR" " -o (SPACE SEPARATED LIST OF OVERRIDE ENV VARS)" + log "ERROR" " -t (SPACE SEPARATED LIST OF TARGET OVERRIDE_VARIABLES THAT WILL BE OVERRIDDEN)" + exit 127 +}