#!/bin/sh if [ ! -z "$BUILDER_VERSION" ]; then printf $BUILDER_VERSION echo $BUILDER_VERSION > .version exit 0 fi VERSION="unknown" DIRTY="" git status | grep -q clean || DIRTY='.dirty' # Special environment variable to signal that we are building a release, as this # has consequences 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}" > .version printf "${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)" VERSION="$(git describe --match=${REL_TYPE}-* --tags --dirty=.dirty | cut -d- -f 2-)" else GIT_VERSION=$(git show --no-patch --format=format:%h HEAD) BRANCH=".$(git rev-parse --abbrev-ref HEAD | perl -p -e 's/[^[:alnum:]]//g;')" [ "${BRANCH}" = ".master" ] && BRANCH='' VERSION="0.0${BRANCH}.${PDNS_BUILD_NUMBER}g${GIT_VERSION}${DIRTY}" fi echo "$VERSION" > .version elif [ -f .version ]; then VERSION="$(cat .version)" fi printf $VERSION