aboutsummaryrefslogtreecommitdiffstats
path: root/make/.make-release-support
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-08-19 19:31:49 +0200
committerHarald Welte <laforge@gnumonks.org>2017-08-19 19:31:49 +0200
commitfc0fec794154b1b9f3766e95f5239a2bbdcf4675 (patch)
treeee1736a899451363c6dd3d4157b0f02bcf4f0315 /make/.make-release-support
parentfd7b5363e895140772b4a417ff161e5ce8586c02 (diff)
Import Makefile from https://github.com/mvanholsteijn/docker-makefile
upstream git version is 190313ea54af7d175dd3469a39a95654d068b83e
Diffstat (limited to 'make/.make-release-support')
-rw-r--r--make/.make-release-support93
1 files changed, 93 insertions, 0 deletions
diff --git a/make/.make-release-support b/make/.make-release-support
new file mode 100644
index 0000000..5c374e6
--- /dev/null
+++ b/make/.make-release-support
@@ -0,0 +1,93 @@
+#!/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
+}