gui: Use whline() for drawing the separator.
[paraslash.git] / GIT-VERSION-GEN
index a64d79612ef3fbde0eadf35d657a5ed67825abce..df7ed327cb3f9b8f93ec596e629da4c08346e69a 100755 (executable)
@@ -1,27 +1,22 @@
-#!/bin/sh
-
-if test $# -ne 1; then
-       echo >&2 "usage: $0 <version file>"
-       exit 1
-fi
+#!/usr/bin/env bash
 
+(($# > 1)) && { echo >&2 "usage: $0 [<version file>]"; exit 1; }
 GVF="$1"
-DEF_VER="unnamed_version"
 
+DEF_VER="unnamed_version"
 LF='
 '
 
 # First see if there is a version file (included in release tarballs),
 # then try git-describe, then default.
-if test -f VERSION
-then
+if [[ -f VERSION ]]; then
        VN=$(cat VERSION) || VN="$DEF_VER"
-elif test -d .git -o -f .git &&
+elif [[ -d .git || -f .git ]] &&
        VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
        case "$VN" in
        *$LF*) (exit 1) ;;
        v[0-9]*)
-               git update-index -q --refresh
+               git update-index -q --refresh &>/dev/null
                test -z "$(git diff-index --name-only HEAD --)" ||
                VN="$VN-dirty" ;;
        esac
@@ -32,14 +27,14 @@ else
 fi
 
 VN=$(expr "$VN" : v*'\(.*\)')
+echo "$VN"
 
-if test -r $GVF
-then
-       VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)
-else
-       VC=unset
+[[ -z "$GVF" ]] && exit 0
+if [[ -r "$GVF" ]]; then
+       pattern='^#define GIT_VERSION "'
+       VC=$(grep "$pattern" < "$GVF" | sed -e "s/$pattern//; s/\"$//")
+       [[ "$VN" == "$VC" ]] && exit 0
 fi
-test "$VN" = "$VC" || {
-       echo >&2 "GIT_VERSION = $VN"
-       echo "GIT_VERSION = $VN" >$GVF
-}
+echo >&2 "new git version: $VN"
+echo "/** \\file ${GVF##*/} Auto-generated version file. Do not edit. */" >$GVF
+echo "#define GIT_VERSION \"$VN\"" >> $GVF