#!/bin/sh

extract_svn_version()
{
    if [ -d "$1"/.svn ]
    then
        svnversion -n "$1"
    elif [ -d "$1"/.git/svn ]
    then
        cd "$1" || exit 1
        git svn info . | grep '^Revision' | cut -d ' ' -f2 | tr -d '\n'
    else
        echo "unknown"
    fi    
}

srcdir="${1:-.}"

if [ -e "$srcdir"/include/vgversion_dist.h ]
then
    cp "$srcdir"/include/vgversion_dist.h include/vgversion.h.tmp
else
    cat > include/vgversion.h.tmp <<EOF
/* Do not edit: file generated by auxprogs/make_or_upd_vgversion_h.
   This file defines VGSVN and VEXSVN, used to report SVN revision
   when using command line options:  -v --version 
*/
#define VGSVN "$(extract_svn_version "$srcdir/.")"
#define VEXSVN "$(extract_svn_version "$srcdir/VEX")"
EOF
fi

if [ -f include/vgversion.h ]
then
    # There is already a vgversion.h.
    # Update it only if we found a different and real svn version
    if grep -q unknown include/vgversion.h.tmp ||
       cmp -s include/vgversion.h include/vgversion.h.tmp
    then
        rm -f include/vgversion.h.tmp
    else
        mv include/vgversion.h.tmp include/vgversion.h
    fi
else
    # There is no vgversion.h. Use the one just generated, whatever it is.
    mv include/vgversion.h.tmp include/vgversion.h
fi
