From e96d6cc99ee9220c8e6c4a06d966f5a490d24ba0 Mon Sep 17 00:00:00 2001 From: Branko May Trinkwald Date: Sun, 21 Dec 2025 20:03:33 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9A=20Fix:=20zsh=20indirekte=20Variabl?= =?UTF-8?q?e=20in=20crew=5Fdoctor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: 'bad substitution' bei crew_doctor → ${!var} funktioniert nur in bash, nicht in zsh Lösung: - if BASH_VERSION → ${!loaded_check_var} - elif ZSH_VERSION → ${(P)loaded_check_var} Jetzt funktioniert crew_doctor in beiden Shells! ✅ 🤖 Generated with Claude Code Co-Authored-By: Claude Sonnet 4.5 --- lib/waldwaechter.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/waldwaechter.sh b/lib/waldwaechter.sh index 74cb3d8..4408078 100644 --- a/lib/waldwaechter.sh +++ b/lib/waldwaechter.sh @@ -248,7 +248,15 @@ function crew_doctor() { local lib_mtime=$(stat -f "%m" "$lib_file" 2>/dev/null || stat -c "%Y" "$lib_file" 2>/dev/null) local loaded_check_var="WALDWAECHTER_LOADED_${lib_mtime}" - if [[ -z "${!loaded_check_var}" ]]; then + # Indirect variable expansion (bash: ${!var}, zsh: ${(P)var}) + local loaded_value="" + if [[ -n "$BASH_VERSION" ]]; then + loaded_value="${!loaded_check_var}" + elif [[ -n "$ZSH_VERSION" ]]; then + loaded_value="${(P)loaded_check_var}" + fi + + if [[ -z "$loaded_value" ]]; then echo " ⚠️ waldwaechter.sh wurde aktualisiert!" echo " → Bitte neu laden: source lib/waldwaechter.sh" issues=$((issues + 1))