Skip to content
This repository has been archived by the owner on Feb 7, 2024. It is now read-only.

Fixes prepare_release.sh. #335

Merged
merged 1 commit into from Oct 11, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
38 changes: 17 additions & 21 deletions scripts/prepare_release.sh
Expand Up @@ -3,56 +3,52 @@

set -e

Colorize() {
echo "$(tput setff $2)$1$(tput sgr0)"
}

EchoRed() {
echo "$(tput setaf 1; tput bold)$1$(tput sgr0)"
echo "$(tput setaf 1; tput bold)$1$(tput sgr0)"
}
EchoGreen() {
echo "$(tput setaf 2; tput bold)$1$(tput sgr0)"
echo "$(tput setaf 2; tput bold)$1$(tput sgr0)"
}

Die() {
EchoRed "$1"
exit 1
EchoRed "$1"
exit 1
}

DieUsage() {
Die "Usage: ./prepare_release.sh <release version> [<post-release-version>]"
Die "Usage: ./prepare_release.sh <release version> [<post-release-version>]"
}

# Usage: CheckVersion <version>
CheckVersion() {
[[ $1 =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z]+)?$ ]] || Die "Version: $1 not in ###.###.###[-XXX] format."
[[ $1 =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z]+)?$ ]] || Die "Version: $1 not in ###.###.###[-XXX] format."
}

# Usage: IncrementVersion <version>
IncrementVersion() {
local version=$1
local minorVersion=$(echo $version | sed 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]\)*/\1/')
local nextMinorVersion=$((minorVersion+1))
echo $version | sed "s/\([0-9][0-9]*\.[0-9][0-9]*\)\.[0-9][0-9]*/\1.$nextMinorVersion/"
local version=$1
local minorVersion=$(echo $version | sed 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]\)*/\1/')
local nextMinorVersion=$((minorVersion+1))
echo $version | sed "s/\([0-9][0-9]*\.[0-9][0-9]*\)\.[0-9][0-9]*/\1.$nextMinorVersion/"
}

[ $# -ne 2 ] || [ $# -ne 3 ] || DieUsage
[ $# -ne 1 ] && [ $# -ne 2 ] && DieUsage

EchoGreen '===== RELEASE SETUP SCRIPT ====='

VERSION=$1
CheckVersion ${VERSION}

if [ $2 ]; then
NEXT_VERSION=$2
CheckVersion ${NEXT_VERSION}
if [ -n "$2" ]; then
NEXT_VERSION=$2
CheckVersion ${NEXT_VERSION}
else
NEXT_VERSION=$(IncrementVersion $VERSION)
CheckVersion ${NEXT_VERSION}
NEXT_VERSION=$(IncrementVersion $VERSION)
CheckVersion ${NEXT_VERSION}
fi

if [[ $(git status -uno --porcelain) ]]; then
Die 'There are uncommitted changes.'
Die 'There are uncommitted changes.'
fi

# Checks out a new branch for this version release (eg. 1.5.7).
Expand Down