fix: remplacer sed par awk dans post-bmad-install pour éviter le conflit de délimiteurs

Les memories contiennent des | (listes de fichiers cibles) qui cassaient
la commande sed s|...|...| sur Linux. awk n'a pas cette limitation.
This commit is contained in:
MaksTinyWorkshop
2026-03-08 19:52:21 +01:00
parent 7e2cba1c5d
commit 0ea345b1ae

View File

@@ -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