From 7ffbcebe4ec1609358276196dd6ed48d601dead0 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Sat, 11 Feb 2017 17:05:28 +0100 Subject: [PATCH 1/4] Replace echo -e with printf to achieve better cross-platform compatibility --- release-tool | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/release-tool b/release-tool index af05481b0..3a69691cc 100755 --- a/release-tool +++ b/release-tool @@ -16,8 +16,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -echo -e "\e[1m\e[32mKeePassXC\e[0m Release Preparation Helper" -echo -e "Copyright (C) 2017 KeePassXC Team \n" +printf "\e[1m\e[32mKeePassXC\e[0m Release Preparation Helper\n" +printf "Copyright (C) 2017 KeePassXC Team \n\n" # ----------------------------------------------------------------------- @@ -57,7 +57,7 @@ printUsage() { cmd="COMMAND" fi - echo -e "\e[1mUsage:\e[0m $(basename $0) $cmd [options]" + printf "\e[1mUsage:\e[0m $(basename $0) $cmd [options]\n" if [ "COMMAND" == "$cmd" ]; then cat << EOF @@ -126,11 +126,11 @@ EOF } logInfo() { - echo -e "\e[1m[ \e[34mINFO\e[39m ]\e[0m $1" + printf "\e[1m[ \e[34mINFO\e[39m ]\e[0m $1\n" } logError() { - echo -e "\e[1m[ \e[31mERROR\e[39m ]\e[0m $1" >&2 + printf "\e[1m[ \e[31mERROR\e[39m ]\e[0m $1\n" >&2 } init() { From b367e105fab5d085ffca52c1ad565caf9f8c2599 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Sat, 11 Feb 2017 17:08:53 +0100 Subject: [PATCH 2/4] re-implement realpath when it does NOT exist --- release-tool | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-tool b/release-tool index 3a69691cc..7290d9621 100755 --- a/release-tool +++ b/release-tool @@ -246,7 +246,7 @@ checkTransifexCommandExists() { # re-implement realpath for OS X (thanks mschrag) # https://superuser.com/questions/205127/ -if $(command -v realpath > /dev/null); then +if ! $(command -v realpath > /dev/null); then realpath() { pushd . > /dev/null if [ -d "$1" ]; then From 12f62df49a771e64a5d292a18692fed58efec9fe Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Sat, 11 Feb 2017 17:19:46 +0100 Subject: [PATCH 3/4] Parse CHANGELOG before checking out target branch --- release-tool | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/release-tool b/release-tool index 7290d9621..0082758e7 100755 --- a/release-tool +++ b/release-tool @@ -347,15 +347,15 @@ merge() { checkReleaseDoesNotExist checkWorkingTreeClean checkSourceBranchExists - checkTargetBranchExists + + logInfo "Checking out source branch '${SOURCE_BRANCH}'..." + git checkout "$SOURCE_BRANCH" + checkVersionInCMake checkChangeLog logInfo "All checks pass, getting our hands dirty now!" - logInfo "Checking out source branch..." - git checkout "$SOURCE_BRANCH" - logInfo "Updating language files..." ./share/translations/update.sh if [ 0 -ne $? ]; then @@ -372,15 +372,15 @@ merge() { fi fi + CHANGELOG=$(grep -Pzo "(?<=${RELEASE_NAME} \(\d{4}-\d{2}-\d{2}\)\n)=+\n\n?(?:.|\n)+?\n(?=\n)" \ + CHANGELOG | grep -Pzo '(?<=\n\n)(.|\n)+' | tr -d \\0) + COMMIT_MSG="Release ${RELEASE_NAME}" + logInfo "Checking out target branch '${TARGET_BRANCH}'..." git checkout "$TARGET_BRANCH" logInfo "Merging '${SOURCE_BRANCH}' into '${TARGET_BRANCH}'..." - CHANGELOG=$(grep -Pzo "(?<=${RELEASE_NAME} \(\d{4}-\d{2}-\d{2}\)\n)=+\n\n?(?:.|\n)+?\n(?=\n)" \ - CHANGELOG | grep -Pzo '(?<=\n\n)(.|\n)+' | tr -d \\0) - COMMIT_MSG="Release ${RELEASE_NAME}" - git merge "$SOURCE_BRANCH" --no-ff -m "$COMMIT_MSG" -m "${CHANGELOG}" "$SOURCE_BRANCH" -S"$GPG_GIT_KEY" logInfo "Creating tag '${TAG_NAME}'..." From c33ce8e0e4354d1001c3275870f629c98fe23ecf Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Sat, 11 Feb 2017 18:29:50 +0100 Subject: [PATCH 4/4] Add missing target branch check --- release-tool | 1 + 1 file changed, 1 insertion(+) diff --git a/release-tool b/release-tool index 0082758e7..3259e6396 100755 --- a/release-tool +++ b/release-tool @@ -347,6 +347,7 @@ merge() { checkReleaseDoesNotExist checkWorkingTreeClean checkSourceBranchExists + checkTargetBranchExists logInfo "Checking out source branch '${SOURCE_BRANCH}'..." git checkout "$SOURCE_BRANCH"