diff --git a/update.sh b/update.sh index 76b702e..56f7568 100644 --- a/update.sh +++ b/update.sh @@ -24,13 +24,33 @@ parse_js_raw() { } # --- normaliser une valeur JS simple: enlève guillemets, garde nombres, laisse path.join tel quel --- +# --- normaliser une valeur JS simple --- +# - supprime les commentaires inline " // ... " +# - supprime la virgule terminale +# - trim espaces +# - retire guillemets si présents normalize_js_value() { local raw="$1" - [[ "$raw" =~ ^\"(.*)\"$ ]] && { echo "${BASH_REMATCH[1]}"; return; } - [[ "$raw" =~ ^\'(.*)\'$ ]] && { echo "${BASH_REMATCH[1]}"; return; } - echo "$raw" + + # retire commentaire inline: seulement si précédé d'un espace (évite "https://") + raw="$(printf '%s' "$raw" | sed -E 's@[[:space:]]//.*$@@')" + + # retire virgule en fin de champ et espaces résiduels + raw="$(printf '%s' "$raw" | sed -E 's/,[[:space:]]*$//')" + raw="$(printf '%s' "$raw" | sed -E 's/^[[:space:]]+//; s/[[:space:]]+$//')" + + # retire guillemets simples/doubles + if [[ "$raw" =~ ^\"(.*)\"$ ]]; then + printf '%s\n' "${BASH_REMATCH[1]}"; return + fi + if [[ "$raw" =~ ^\'(.*)\'$ ]]; then + printf '%s\n' "${BASH_REMATCH[1]}"; return + fi + + printf '%s\n' "$raw" } + # placeholders à refuser (vides, “Voir…”, “CHANGEME…”, etc.) is_placeholder() { local v="$1"