From 6dbeca217ed7209e63fa510d59a468136c3c0052 Mon Sep 17 00:00:00 2001 From: muxator Date: Fri, 4 May 2018 00:36:09 +0200 Subject: [PATCH] createRelease.sh: changelog editing failed for multiline messages sed does not accept multiline strings in its replacement text. Let's replace newlines with literal "\n" in modify_files() --- bin/createRelease.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bin/createRelease.sh b/bin/createRelease.sh index bffa96ad9..0439026bd 100755 --- a/bin/createRelease.sh +++ b/bin/createRelease.sh @@ -65,7 +65,16 @@ function check_api_token { function modify_files { # Add changelog text to first line of CHANGELOG.md - sed -i "1s/^/${changelogText}\n/" CHANGELOG.md + + msg="" + # source: https://unix.stackexchange.com/questions/9784/how-can-i-read-line-by-line-from-a-variable-in-bash#9789 + while IFS= read -r line + do + # replace newlines with literal "\n" for using with sed + msg+="$line\n" + done < <(printf '%s\n' "${changelogText}") + + sed -i "1s/^/${msg}\n/" CHANGELOG.md [[ $? != 0 ]] && echo "Aborting: Error modifying CHANGELOG.md" && exit 1 # Replace version number of etherpad in package.json