refactor: replace associative array with Bash 3.2 compatible key-value store for collected runner data
This commit is contained in:
@@ -227,7 +227,7 @@ ensure_runner_section() {
|
|||||||
save_runner_field() {
|
save_runner_field() {
|
||||||
local section="$1" key="$2" value="$3"
|
local section="$1" key="$2" value="$3"
|
||||||
ini_set "$RUNNERS_CONF" "$section" "$key" "$value"
|
ini_set "$RUNNERS_CONF" "$section" "$key" "$value"
|
||||||
COLLECTED_DATA["${section}:${key}"]="$value"
|
_cdata_set "${section}:${key}" "$value"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ===========================================================================
|
# ===========================================================================
|
||||||
@@ -272,7 +272,32 @@ TOTAL_PROMPTS=$((runner_count * 11))
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Keep arrays for end-of-run summary; values are persisted immediately.
|
# Keep arrays for end-of-run summary; values are persisted immediately.
|
||||||
COLLECTED_NAMES=()
|
COLLECTED_NAMES=()
|
||||||
declare -A COLLECTED_DATA # COLLECTED_DATA["name:key"] = value
|
# Bash 3.2 compatible key-value store (no associative arrays)
|
||||||
|
_CDATA_KEYS=()
|
||||||
|
_CDATA_VALS=()
|
||||||
|
|
||||||
|
_cdata_set() {
|
||||||
|
local k="$1" v="$2" i
|
||||||
|
for i in "${!_CDATA_KEYS[@]}"; do
|
||||||
|
if [[ "${_CDATA_KEYS[$i]}" == "$k" ]]; then
|
||||||
|
_CDATA_VALS[i]="$v"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
_CDATA_KEYS+=("$k")
|
||||||
|
_CDATA_VALS+=("$v")
|
||||||
|
}
|
||||||
|
|
||||||
|
_cdata_get() {
|
||||||
|
local k="$1" default="${2:-}" i
|
||||||
|
for i in "${!_CDATA_KEYS[@]}"; do
|
||||||
|
if [[ "${_CDATA_KEYS[$i]}" == "$k" ]]; then
|
||||||
|
printf '%s' "${_CDATA_VALS[$i]}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
printf '%s' "$default"
|
||||||
|
}
|
||||||
|
|
||||||
init_runners_conf
|
init_runners_conf
|
||||||
|
|
||||||
@@ -495,13 +520,13 @@ printf '%-20s %-10s %-8s %-6s %-10s %-6s %-10s %-24s\n' "----" "----" "----" "--
|
|||||||
for r_name in "${COLLECTED_NAMES[@]}"; do
|
for r_name in "${COLLECTED_NAMES[@]}"; do
|
||||||
printf '%-20s %-10s %-8s %-6s %-10s %-6s %-10s %-24s\n' \
|
printf '%-20s %-10s %-8s %-6s %-10s %-6s %-10s %-24s\n' \
|
||||||
"$r_name" \
|
"$r_name" \
|
||||||
"${COLLECTED_DATA["${r_name}:host"]:-}" \
|
"$(_cdata_get "${r_name}:host")" \
|
||||||
"${COLLECTED_DATA["${r_name}:type"]:-}" \
|
"$(_cdata_get "${r_name}:type")" \
|
||||||
"${COLLECTED_DATA["${r_name}:boot"]:-—}" \
|
"$(_cdata_get "${r_name}:boot" "—")" \
|
||||||
"${COLLECTED_DATA["${r_name}:labels"]:-}" \
|
"$(_cdata_get "${r_name}:labels")" \
|
||||||
"${COLLECTED_DATA["${r_name}:capacity"]:-}" \
|
"$(_cdata_get "${r_name}:capacity")" \
|
||||||
"${COLLECTED_DATA["${r_name}:repos"]:-}" \
|
"$(_cdata_get "${r_name}:repos")" \
|
||||||
"${COLLECTED_DATA["${r_name}:data_path"]:-}"
|
"$(_cdata_get "${r_name}:data_path")"
|
||||||
done
|
done
|
||||||
|
|
||||||
printf '\n Saved to: %s\n\n' "$RUNNERS_CONF"
|
printf '\n Saved to: %s\n\n' "$RUNNERS_CONF"
|
||||||
|
|||||||
Reference in New Issue
Block a user