From c4409a52b630c86f1ff1e2027dbbdf46f68ce21f Mon Sep 17 00:00:00 2001 From: Alptekin Kekilli Date: Thu, 16 Jul 2026 20:25:50 +0300 Subject: [PATCH] =?UTF-8?q?fix(dev.sh):=20bash=203.2=20uyumlu=20lowercase?= =?UTF-8?q?=20=E2=80=94=20macOS'ta=20'bad=20substitution'=20ile=20a=C3=A7?= =?UTF-8?q?=C4=B1lm=C4=B1yordu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit is_truthy_env_value() ${1,,} (bash 4+ expansion) kullanıyordu. macOS /bin/bash hâlâ 3.2.57 olduğu için './dev.sh up' runtime'da '${1,,}: bad substitution' verip çıkıyor, backend hiç ayağa kalkmıyordu. Dosyadaki TEK bash4-izm buydu; tr ile taşınabilir hale getirildi (shebang/PATH'e bağımlı değil, stock macOS'ta da çalışır). Kanıt (bash 3.2.57): - eski: ${1,,} -> 'bad substitution' - yeni: TRUE/true/YES/On/1 -> truthy; false/NO/0/boş -> falsy (davranış korundu) - bash -n dev.sh: parse OK Not: '#!/usr/bin/env bash' yeterli DEĞİL — Homebrew bash'i olmayan makinede yine 3.2 bulunur. --- dev.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dev.sh b/dev.sh index 01744257..622a99d7 100755 --- a/dev.sh +++ b/dev.sh @@ -53,7 +53,10 @@ read_env_value() { } is_truthy_env_value() { - local value="${1,,}" + # NOTE: ${1,,} is a bash 4+ expansion; macOS ships bash 3.2 as /bin/bash, + # where it fails at runtime with "bad substitution". tr keeps this portable. + local value + value="$(printf '%s' "$1" | tr '[:upper:]' '[:lower:]')" case "$value" in 1|true|yes|on) return 0