#!/usr/bin/env bash # Shared step-tracking helpers for setup-local.sh and setup-remote.sh STEP_NAMES=() STEP_STATUS=() STEP_DETAIL=() step_ok() { STEP_NAMES+=("$1"); STEP_STATUS+=("OK"); STEP_DETAIL+=("${2:-}"); echo "[OK] $1"; } step_skip() { STEP_NAMES+=("$1"); STEP_STATUS+=("SKIPPED"); STEP_DETAIL+=("${2:-}"); echo "[SKIPPED] $1 - ${2:-}"; } step_fail() { STEP_NAMES+=("$1"); STEP_STATUS+=("FAILED"); STEP_DETAIL+=("${2:-}"); echo "[FAILED] $1 - ${2:-}"; } section() { echo; echo "== $1 =="; } # Prints the OK/SKIPPED/FAILED table. Returns 1 if any step failed, 0 otherwise. # Does not exit and does not print anything past the table - callers add their # own pass/fail wording and next-steps text. print_summary_table() { echo echo "===================== summary =====================" local any_failed=0 for i in "${!STEP_NAMES[@]}"; do printf '[%-8s] %s\n' "${STEP_STATUS[$i]}" "${STEP_NAMES[$i]}" [ -n "${STEP_DETAIL[$i]}" ] && printf ' %s\n' "${STEP_DETAIL[$i]}" [ "${STEP_STATUS[$i]}" = "FAILED" ] && any_failed=1 done echo "=====================================================" return "$any_failed" }