X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=GIT-VERSION-GEN;h=b8abff355e071af95ae8fc7aafd575e131495438;hp=a64d79612ef3fbde0eadf35d657a5ed67825abce;hb=99708bef7ad12ccb9399186f6055004d11bcf3db;hpb=63c513602a6b6a97cdced053beea0b2d07a9f984;ds=sidebyside diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index a64d7961..b8abff35 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,45 +1,42 @@ -#!/bin/sh - -if test $# -ne 1; then - echo >&2 "usage: $0 " - exit 1 -fi +#!/usr/bin/env bash +(($# > 1)) && { echo >&2 "usage: $0 []"; 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 +# then try git-describe, then gitweb, then default. +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 then VN=$(echo "$VN" | sed -e 's/-/./g'); +elif [[ "$PWD" =~ paraslash-[a-f0-9]{1,} ]]; then + VN="${PWD#*-}" else VN="$DEF_VER" 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