diff --git a/setup/configure_runners.sh b/setup/configure_runners.sh index ec82588..b3a5ebf 100755 --- a/setup/configure_runners.sh +++ b/setup/configure_runners.sh @@ -227,7 +227,7 @@ ensure_runner_section() { save_runner_field() { local section="$1" key="$2" value="$3" 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. 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 @@ -495,13 +520,13 @@ printf '%-20s %-10s %-8s %-6s %-10s %-6s %-10s %-24s\n' "----" "----" "----" "-- for r_name in "${COLLECTED_NAMES[@]}"; do printf '%-20s %-10s %-8s %-6s %-10s %-6s %-10s %-24s\n' \ "$r_name" \ - "${COLLECTED_DATA["${r_name}:host"]:-}" \ - "${COLLECTED_DATA["${r_name}:type"]:-}" \ - "${COLLECTED_DATA["${r_name}:boot"]:-—}" \ - "${COLLECTED_DATA["${r_name}:labels"]:-}" \ - "${COLLECTED_DATA["${r_name}:capacity"]:-}" \ - "${COLLECTED_DATA["${r_name}:repos"]:-}" \ - "${COLLECTED_DATA["${r_name}:data_path"]:-}" + "$(_cdata_get "${r_name}:host")" \ + "$(_cdata_get "${r_name}:type")" \ + "$(_cdata_get "${r_name}:boot" "—")" \ + "$(_cdata_get "${r_name}:labels")" \ + "$(_cdata_get "${r_name}:capacity")" \ + "$(_cdata_get "${r_name}:repos")" \ + "$(_cdata_get "${r_name}:data_path")" done printf '\n Saved to: %s\n\n' "$RUNNERS_CONF"