fix(hooks): use printf -v for bash 3.2 compat (declare -g is 4.2+)
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.
This commit is contained in:
@@ -37,7 +37,9 @@ load_env_vars() {
|
|||||||
# command substitution in backtick-containing comments
|
# command substitution in backtick-containing comments
|
||||||
value="${value%%[[:space:]]#*}"
|
value="${value%%[[:space:]]#*}"
|
||||||
if [[ -n "$key" && -n "$value" ]]; then
|
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
|
fi
|
||||||
done < "$file"
|
done < "$file"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user