From 46cf2328aad83094f0b4d13afc2778ebb90168fa Mon Sep 17 00:00:00 2001 From: Trevin Chow Date: Sat, 16 May 2026 23:49:44 -0700 Subject: [PATCH] fix(hooks): use printf -v for bash 3.2 compat (declare -g is 4.2+) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit macOS ships /bin/bash 3.2 and the script uses #!/bin/bash with set -euo pipefail, so declare -g would abort the SessionStart hook with "invalid option" on every Mac. printf -v writes via assignment semantics (global from inside a function on 3.2+) — same scope outcome, broader compatibility. --- hooks/scripts/check-config.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hooks/scripts/check-config.sh b/hooks/scripts/check-config.sh index c5a8f09..bb20a6e 100755 --- a/hooks/scripts/check-config.sh +++ b/hooks/scripts/check-config.sh @@ -37,7 +37,9 @@ load_env_vars() { # command substitution in backtick-containing comments value="${value%%[[:space:]]#*}" if [[ -n "$key" && -n "$value" ]]; then - declare -g "ENV_${key}=${value}" + # printf -v writes via assignment semantics (global from inside a + # function), works on macOS's /bin/bash 3.2 — `declare -g` is 4.2+. + printf -v "ENV_${key}" '%s' "$value" fi done < "$file" fi