From 0ea345b1ae530632844e24fa4ac9ffa2f30ff1a2 Mon Sep 17 00:00:00 2001 From: MaksTinyWorkshop Date: Sun, 8 Mar 2026 19:52:21 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20remplacer=20sed=20par=20awk=20dans=20pos?= =?UTF-8?q?t-bmad-install=20pour=20=C3=A9viter=20le=20conflit=20de=20d?= =?UTF-8?q?=C3=A9limiteurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les memories contiennent des | (listes de fichiers cibles) qui cassaient la commande sed s|...|...| sur Linux. awk n'a pas cette limitation. --- scripts/post-bmad-install.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/post-bmad-install.sh b/scripts/post-bmad-install.sh index f96528d..2307a09 100755 --- a/scripts/post-bmad-install.sh +++ b/scripts/post-bmad-install.sh @@ -67,12 +67,11 @@ patch_agent() { memory="$(build_memory "$agent")" # Remplacer memories: [] par le bloc injecté - # Compatible macOS (sed -i '') et Linux (sed -i) - if [[ "$(uname)" == "Darwin" ]]; then - sed -i '' "s|^memories: \[\]|memories:\n - \"${memory}\"|" "$file" - else - sed -i "s|^memories: \[\]|memories:\n - \"${memory}\"|" "$file" - fi + # Utilise awk pour éviter les conflits avec les caractères spéciaux (|, <, >) dans sed + awk -v mem="$memory" ' + /^memories: \[\]/ { print "memories:"; print " - \"" mem "\""; next } + { print } + ' "$file" > "${file}.tmp" && mv "${file}.tmp" "$file" echo " [ok] $agent — memory injectée" else