#!/bin/sh

# Determine the version string to build into a binary.
# When building in the git repository, we can use the output 
# of "git describe" which gives an unequivocal answer.
#
# Failing that, we use the contents of the VERSION file
# which has a set of references substituted into it by git.
# If we can find one which matches $v[0-9].* then we assume it's
# a version-number tag, else we just use the whole string.
# If there is more than one v[0-9].* tag, sort them and use the
# first. This favours, eg v2.63 over 2.63rc6.

if which git >/dev/null 2>&1 && [ -d $1/.git ]; then
     cd $1; git describe | sed 's/^v//'
elif grep '\$Format:%d\$' $1/VERSION >/dev/null 2>&1; then
# unsubstituted VERSION, but no git available.
    echo UNKNOWN
else
     vers=`cat $1/VERSION | sed 's/[(), ]/,/ g' | tr ',' '\n' | grep ^v[0-9]`

     if [ $? -eq 0 ]; then
         echo "${vers}" | sort | head -n 1 | sed 's/^v//'
     else
         cat $1/VERSION
     fi
fi

exit 0

