From d529cb259231d98635d0adacde7d05d04f545eba Mon Sep 17 00:00:00 2001 From: Pieter Lexis Date: Tue, 15 Dec 2015 16:21:33 +0100 Subject: [PATCH] Set version numbers correctly on releases --- build-aux/gen-version | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/build-aux/gen-version b/build-aux/gen-version index d761c566ab..cec0e70049 100755 --- a/build-aux/gen-version +++ b/build-aux/gen-version @@ -1,6 +1,25 @@ #!/bin/sh VERSION="unknown" +DIRTY="" +git status | grep -q clean || DIRTY='.dirty' + +# Special environment variable to signal that we are building a release, as this +# has condequenses for the version number. +if [ "${IS_RELEASE}" = "YES" ]; then + TAG="$(git describe --tags --exact-match 2> /dev/null | cut -d- -f 2-)" + if [ -n "${TAG}" ]; then + # We're on a tag + echo "${TAG}${DIRTY}" + exit 0 + fi + echo 'This is not a tag, either tag this commit or do not set $IS_RELEASE' >&2 + exit 1 +fi + +# +# Generate the version number based on the branch +# if [ ! -z "$(git rev-parse --abbrev-ref HEAD 2> /dev/null)" ]; then if $(git rev-parse --abbrev-ref HEAD | grep -q 'rel/'); then REL_TYPE="$(git rev-parse --abbrev-ref HEAD | cut -d/ -f 2 | cut -d- -f 1)" @@ -9,7 +28,6 @@ if [ ! -z "$(git rev-parse --abbrev-ref HEAD 2> /dev/null)" ]; then GIT_VERSION=$(git show --no-patch --format=format:%h HEAD) BRANCH=".$(git rev-parse --abbrev-ref HEAD | perl -p -e 's/-//g;')" [ "${BRANCH}" = ".master" ] && BRANCH='' - git status | grep -q clean || DIRTY='.dirty' VERSION="0.0${BRANCH}.${PDNS_BUILD_NUMBER}g${GIT_VERSION}${DIRTY}" fi echo "$VERSION" > .version -- 2.47.2