GIT-VERSION-GENon commit grep --all-match (0ab7bef)
   1#!/bin/sh
   2
   3GVF=GIT-VERSION-FILE
   4DEF_VER=v1.4.2.GIT
   5
   6LF='
   7'
   8
   9# First try git-describe, then see if there is a version file
  10# (included in release tarballs), then default
  11if VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
  12   case "$VN" in
  13   *$LF*) (exit 1) ;;
  14   v[0-9]*) : happy ;;
  15   esac
  16then
  17        VN=$(echo "$VN" | sed -e 's/-/./g');
  18elif test -f version
  19then
  20        VN=$(cat version) || VN="$DEF_VER"
  21else
  22        VN="$DEF_VER"
  23fi
  24
  25VN=$(expr "$VN" : v*'\(.*\)')
  26
  27dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
  28case "$dirty" in
  29'')
  30        ;;
  31*)
  32        VN="$VN-dirty" ;;
  33esac
  34
  35if test -r $GVF
  36then
  37        VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
  38else
  39        VC=unset
  40fi
  41test "$VN" = "$VC" || {
  42        echo >&2 "GIT_VERSION = $VN"
  43        echo "GIT_VERSION = $VN" >$GVF
  44}
  45
  46