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>
This commit is contained in:
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/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/base/lib/local-storage/-ensure-existance-file-dot-env.sh
|
||||
. ./.scripts/base/lib/local-storage/-ensure-existance-file.sh
|
||||
|
||||
. ./.scripts/base/lib/local-storage/-read-lines-from-file-dot-env.sh
|
||||
. ./.scripts/base/lib/local-storage/-read-lines-from-file.sh
|
||||
|
||||
. ./.scripts/base/lib/local-storage/-reset-file-dot-env.sh
|
||||
. ./.scripts/base/lib/local-storage/-reset-file.sh
|
||||
|
||||
. ./.scripts/base/lib/local-storage/-save-env-variable-2-file-dot-env.sh
|
||||
. ./.scripts/base/lib/local-storage/-save-env-variable-2-file.sh
|
||||
|
||||
. ./.scripts/base/lib/local-storage/-view-file-dot-env.sh
|
||||
. ./.scripts/base/lib/local-storage/-view-file.sh
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/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/local-storage/-ensure-existance-file.sh
|
||||
|
||||
_base_localStorage_ensureExistance_fileDotEnv() {
|
||||
local FUNCTION_NAME="_base_localStorage_ensureExistance_fileDotEnv"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV: ${LOCAL_FILE_DOT_ENV}"
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV (absolute): ${LOCAL_HOME_DIR}/${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
_base_localStorage_ensureExistance_file "${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#!/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
|
||||
|
||||
_base_localStorage_ensureExistance_file() {
|
||||
local FUNCTION_NAME="_base_localStorage_ensureExistance_file"
|
||||
# _loggers_info "${FUNCTION_NAME}"
|
||||
|
||||
local FILE_RELATIVE_PATH="${1}"
|
||||
|
||||
if
|
||||
[ -z "${FILE_RELATIVE_PATH}" ]
|
||||
then
|
||||
_loggers_error "${FUNCTION_NAME}"
|
||||
_loggers_error "${FUNCTION_NAME}" "Missing mandatory 1st paramter (FILE_RELATIVE_PATH)!"
|
||||
_loggers_error "${FUNCTION_NAME}"
|
||||
exit 1
|
||||
fi
|
||||
if
|
||||
[ ! -e "${FILE_RELATIVE_PATH}" ]
|
||||
then
|
||||
touch "${FILE_RELATIVE_PATH}"
|
||||
_loggers_warn "${FUNCTION_NAME}"
|
||||
_loggers_warn "${FUNCTION_NAME}" "Was absent -> had to create!"
|
||||
_loggers_warn "${FUNCTION_NAME}"
|
||||
fi
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/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/local-storage/-ensure-existance-file.sh
|
||||
|
||||
_base_localStorage_readLinesFrom_fileDotEnv() {
|
||||
local FUNCTION_NAME="_base_localStorage_readLinesFrom_fileDotEnv"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV: ${LOCAL_FILE_DOT_ENV}"
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV (absolute): ${LOCAL_HOME_DIR}/${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
local RET_VAL=$(
|
||||
_base_localStorage_readLinesFrom_file "${LOCAL_FILE_DOT_ENV}"
|
||||
)
|
||||
_loggers_emptyLine
|
||||
|
||||
echo "${RET_VAL[@]}"
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
#!/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/local-storage/-ensure-existance-file.sh
|
||||
|
||||
_base_localStorage_readLinesFrom_file() {
|
||||
local FUNCTION_NAME="_base_localStorage_readLinesFrom_file"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
local FILE_RELATIVE_PATH="${1}"
|
||||
|
||||
_base_localStorage_ensureExistance_file "${FILE_RELATIVE_PATH}"
|
||||
|
||||
local RET_VAL=()
|
||||
|
||||
while
|
||||
read -r TMP_FILE_LINE
|
||||
do
|
||||
if
|
||||
[ ! -z "${TMP_FILE_LINE}" ]
|
||||
then
|
||||
RET_VAL+=($TMP_FILE_LINE)
|
||||
fi
|
||||
|
||||
done <"${FILE_RELATIVE_PATH}"
|
||||
|
||||
echo "${RET_VAL[*]}"
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
#!/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/local-storage/-reset-file.sh
|
||||
|
||||
_base_localStorage_reset_fileDotEnv() {
|
||||
local FUNCTION_NAME="_base_localStorage_reset_fileDotEnv"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV: ${LOCAL_FILE_DOT_ENV}"
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV (absolute): ${LOCAL_HOME_DIR}/${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
_base_localStorage_reset_file "${LOCAL_FILE_DOT_ENV}"
|
||||
}
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/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
|
||||
|
||||
_base_localStorage_reset_file() {
|
||||
local FUNCTION_NAME="_base_localStorage_reset_file"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
local FILE_RELATIVE_PATH="${1}"
|
||||
|
||||
if
|
||||
[ -z "${FILE_RELATIVE_PATH}" ]
|
||||
then
|
||||
_loggers_error "${FUNCTION_NAME}"
|
||||
_loggers_error "${FUNCTION_NAME}" "Missing mandatory 1st paramter (FILE_RELATIVE_PATH)!"
|
||||
_loggers_error "${FUNCTION_NAME}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm "${FILE_RELATIVE_PATH}"
|
||||
|
||||
touch "${FILE_RELATIVE_PATH}"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/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/local-storage/-save-env-variable-2-file.sh
|
||||
|
||||
_base_localStorage_saveEnvVariable2_fileDotEnv() {
|
||||
local FUNCTION_NAME="_base_localStorage_saveEnvVariable2_fileDotEnv"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV: ${LOCAL_FILE_DOT_ENV}"
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV (absolute): ${LOCAL_HOME_DIR}/${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
_base_localStorage_saveEnvVariable2_file "${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
#!/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
|
||||
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#!/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/local-storage/-ensure-existance-file-dot-env.sh
|
||||
. ./.scripts/base/lib/local-storage/-view-file.sh
|
||||
|
||||
_base_localStorage_view_fileDotEnv() {
|
||||
local FUNCTION_NAME="_base_localStorage_view_fileDotEnv"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV: ${LOCAL_FILE_DOT_ENV}"
|
||||
_loggers_info "${FUNCTION_NAME}" "LOCAL_FILE_DOT_ENV (absolute): ${LOCAL_HOME_DIR}/${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
_base_localStorage_ensureExistance_file "${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
_base_localStorage_view_file "${LOCAL_FILE_DOT_ENV}"
|
||||
|
||||
}
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/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
|
||||
|
||||
_base_localStorage_view_file() {
|
||||
local FUNCTION_NAME="_base_localStorage_view_file"
|
||||
_loggers_debug "${FUNCTION_NAME}"
|
||||
|
||||
local FILE_RELATIVE_PATH="${1}"
|
||||
|
||||
if
|
||||
[ -z "${FILE_RELATIVE_PATH}" ]
|
||||
then
|
||||
_loggers_error "${FUNCTION_NAME}"
|
||||
_loggers_error "${FUNCTION_NAME}" "Missing mandatory 1st paramter (FILE_RELATIVE_PATH)!"
|
||||
_loggers_error "${FUNCTION_NAME}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
_loggers_emptyLine
|
||||
cat "${FILE_RELATIVE_PATH}"
|
||||
_loggers_emptyLine
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user