Files
development-scripts-3darch/assets/base/lib/local-storage/-save-env-variable-2-file.sh
T
oleg-lukasonokandClaude Opus 5 31a5408a6c Add development-scripts agent skill
Ports generic-scripts-module-v1 into a routed skill: module anatomy, shared
loggers/base modules, Taskfile integration, workflows, and pattern decisions.

Fixes a latent defect in the loggers example that silenced all logging in the
module scaffold: loggers/lib/--index-api.sh now sources --env-vars-reader.sh,
and the reader preserves already-exported values so caller overrides still win.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 22:18:55 +03:00

63 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# -------------------------------------------------------------------------------------
# IBM Confidential
# 6949-70F, 6949-80D
# © Copyright IBM Corp. 2018, 2024
# US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
# -------------------------------------------------------------------------------------
. ./.scripts/loggers/lib/--index-api.sh
. ./.scripts/base/lib/-ensure-env-var-key.sh
. ./.scripts/base/lib/-ensure-env-var-value.sh
. ./.scripts/base/lib/-get-env-variable-key-from-line.sh
. ./.scripts/base/lib/local-storage/-ensure-existance-file.sh
. ./.scripts/base/lib/local-storage/-read-lines-from-file.sh
. ./.scripts/base/lib/local-storage/-reset-file.sh
_base_localStorage_saveEnvVariable2_file() {
local FUNCTION_NAME="_base_localStorage_saveEnvVariable2_file"
_loggers_debug "${FUNCTION_NAME}"
_base_ensure_evnVarKey
_base_ensure_evnVarValue
local FILE_RELATIVE_PATH="${1}"
_base_localStorage_ensureExistance_file "${FILE_RELATIVE_PATH}"
local PARAM_ENV_VAR_KEY="${ENV_VAR_KEY}"
local PARAM_ENV_VAR_VALUE="${ENV_VAR_VALUE}"
_loggers_debug "${FUNCTION_NAME}" "ENV_VAR_KEY: ${ENV_VAR_KEY}"
_loggers_debug "${FUNCTION_NAME}" "ENV_VAR_VALUE: ${ENV_VAR_VALUE}"
local FILE_LINES=$(cat "$FILE_RELATIVE_PATH")
_base_localStorage_reset_file "${FILE_RELATIVE_PATH}"
local TMP_KEY_STATUS=""
echo "$FILE_LINES" | while IFS= read -r FILE_LINE; do
local TMP_ENV_VAR_KEY=$(
_base_getEnvVariableKey_fromLine "${FILE_LINE}"
)
if
[ "${PARAM_ENV_VAR_KEY}" = "${TMP_ENV_VAR_KEY}" ]
then
echo "${PARAM_ENV_VAR_KEY}=\"${PARAM_ENV_VAR_VALUE}\"" >>"${FILE_RELATIVE_PATH}"
TMP_KEY_STATUS="REPLACED"
else
echo "${FILE_LINE}" >>"${FILE_RELATIVE_PATH}"
fi
done
if
[ ! "${TMP_KEY_STATUS}" = "REPLACED" ]
then
echo "${PARAM_ENV_VAR_KEY}=\"${PARAM_ENV_VAR_VALUE}\"" >>"${FILE_RELATIVE_PATH}"
fi
}