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>
63 lines
1.9 KiB
Bash
Executable File
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
|
|
|
|
}
|