#!/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)"
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