#!/bin/sh GVF=GIT-VERSION-FILE DEF_VER=v1.9.2 LF=' ' describe () { VN=$(git describe --match "v[0-9]*" --abbrev=7 HEAD 2>/dev/null) || return 1 case "$VN" in *$LF*) return 1 ;; v[0-9]*) git update-index -q --refresh test -z "$(git diff-index --name-only HEAD --)" || VN="$VN-dirty" return 0 ;; esac } # First see if there is a version file (included in release tarballs), # then try 'git describe', then default. if test -f version then VN=$(cat version) || VN="$DEF_VER" elif test -d ${GIT_DIR:-.git} -o -f .git && describe then VN=$(echo "$VN" | sed -e 's/-/~/g') else VN="$DEF_VER" fi VN=$(expr "$VN" : v*'\(.*\)') if test -r $GVF then VC=$(sed -e 's/^GIT_VERSION = //' <$GVF) else VC=unset fi test "$VN" = "$VC" && exit echo >&2 "GIT_VERSION = $VN" echo "GIT_VERSION = $VN" >$GVF