#!/bin/bash # # Copyright 2015 Xebia Nederland B.V. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # function hasChanges() { test -n "$(git status -s .)" } function getRelease() { awk -F= '/release/{print $2}' .release } function getBaseTag() { sed -n -e "s/tag=\(.*\)$(getRelease)\$/\1/p" .release } function getTag() { if [ -z "$1" ] ; then awk -F= '/tag/{print $2}' .release else echo "$(getBaseTag)$1" fi } function setRelease() { if [ -n "$1" ] ; then sed -e "s/tag=.*/tag=$(getTag $1)/" .release > .release.x sed -e "s/release=.*/release=$1/g" .release.x > .release rm -f .release.x else echo "ERROR: missing release version parameter " >&2 return 1 fi } function tagExists() { tag=${1:-$(getTag)} test -n "$tag" && test -n "$(git tag | grep "^$tag\$")" } function differsFromRelease() { tag=$(getTag) ! tagExists $tag || test -n "$(git diff --shortstat -r $tag .)" } function getVersion() { result=$(getRelease) if differsFromRelease; then result="$result-$(git rev-parse --short HEAD)" fi if hasChanges ; then result="$result-dirty" fi echo $result } function nextPatchLevel() { version=${1:-$(getRelease)} major_and_minor=$(echo $version | cut -d. -f1,2) patch=$(echo $version | cut -d. -f3) version=$(printf "%s.%d" $major_and_minor $(($patch + 1))) echo $version } function nextMinorLevel() { version=${1:-$(getRelease)} major=$(echo $version | cut -d. -f1); minor=$(echo $version | cut -d. -f2); version=$(printf "%d.%d.0" $major $(($minor + 1))) ; echo $version } function nextMajorLevel() { version=${1:-$(getRelease)} major=$(echo $version | cut -d. -f1); version=$(printf "%d.0.0" $(($major + 1))) echo $version }