#!/bin/sh
# Print additional version information for non-release trees.

usage() {
	echo "Usage: $0 <baseversion> [srctree]" >&2
	exit 1
}

baseversion=$1
[ -n "$baseversion" ] || usage

cd "${2:-.}" || usage

version=$baseversion

# Check for git and a git repo.
if head=`git rev-parse --verify HEAD 2>/dev/null`; then

        # assume we have a recent enough git
        if descr=`git describe --dirty 2>/dev/null` ; then
                descr=${descr#v}
                printf '%s' "$descr"
                exit 0
        fi

        # maybe we're just missing support for --dirty (pre git 1.6.6)
        dirty=
        if git diff-files 2>/dev/null | read dummy ; then
                dirty=-dirty
        fi

        if descr=`git describe 2>/dev/null` ; then
                # git-describe was added in git 1.5.0
                descr=${descr#v}
                printf '%s%s' $descr $dirty

        else
                # if we don't ahve git-describe keep it simple
                head=`echo "$head" | cut -c1-8`
                printf "%s-g%s%s" $baseversion $head $dirty
	fi
else
        printf "$baseversion"
fi

