GIT-VERSION-GENon commit git-gui: Handle gitgui tags in version gen. (6a6459b)
   1#!/bin/sh
   2
   3GVF=GIT-VERSION-FILE
   4DEF_VER=0.5.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   gitgui-[0-9]*) : happy ;;
  15   esac
  16then
  17        VN=$(echo "$VN" | sed -e 's/^gitgui-//;s/-/./g');
  18elif test -f version
  19then
  20        VN=$(cat version) || VN="$DEF_VER"
  21else
  22        VN="$DEF_VER"
  23fi
  24
  25dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
  26case "$dirty" in
  27'')
  28        ;;
  29*)
  30        VN="$VN-dirty" ;;
  31esac
  32
  33if test -r $GVF
  34then
  35        VC=$(sed -e 's/^GITGUI_VERSION = //' <$GVF)
  36else
  37        VC=unset
  38fi
  39test "$VN" = "$VC" || {
  40        echo >&2 "GITGUI_VERSION = $VN"
  41        echo "GITGUI_VERSION = $VN" >$GVF
  42}
  43
  44