GIT-VERSION-GENon commit GIT-VERSION-GEN: detect dirty tree and mark the version accordingly. (eb858c6)
   1#!/bin/sh
   2
   3GVF=GIT-VERSION-FILE
   4DEF_VER=v1.1.GIT
   5
   6# First try git-describe, then see if there is a version file
   7# (included in release tarballs), then default
   8VN=$(git-describe --abbrev=4 HEAD 2>/dev/null) ||
   9VN=$(cat version) ||
  10VN="$DEF_VER"
  11
  12VN=$(expr "$VN" : v*'\(.*\)')
  13
  14dirty=$(sh -c 'git-diff-index --name-only HEAD' 2>/dev/null) || dirty=
  15case "$dirty" in
  16'')
  17        ;;
  18*)
  19        VN="$VN-dirty" ;;
  20esac
  21
  22if test -r $GVF
  23then
  24        VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
  25else
  26        VC=unset
  27fi
  28test "$VN" = "$VC" || {
  29        echo >&2 "GIT_VERSION = $VN"
  30        echo "GIT_VERSION = $VN" >$GVF
  31}
  32
  33