Blob Blame History Raw
#!/bin/bash
#
# This script is run by autogen to create the FULL_VERSION file.
#
# If run from a git branch, it append '.git.' + git sha1 to the VERSION file.
# If run from a svn branch, it append '.svn.' + svn number to the VERSION file.
# If run from a svn tag that match /rc/ it use only the tag name to set the
#  VERSION, this is done specifically for zmanda rc build.
# If run from a svn tag that doesn't match /rc/ it use only the VERSION file.
#
# It is important to update the VERSION file before creating a tag.
#
# ./autogen run config/set_full_version, it create the FULL_VERSION file.
# ./configure use the FULL_VERSION file.
#
srcdir=$1

if test -d .svn; then
    svn info . > conftemp.svn
else
    echo "" > conftemp.svn
fi

if test -d .svn && ( grep Revision: conftemp.svn > /dev/null; ); then
#if grep Revision: conftemp.svn > /dev/null ; then
    SVN_REV=`grep Revision: conftemp.svn|cut -d: -f 2|cut -c2-`
    SVN_URL=`grep URL: conftemp.svn|cut -d: -f 2-|cut -c2-`
    SVN_PATH=`grep URL: conftemp.svn|cut -d "/" -f 8-`
    SVN_TYPE=`echo ${SVN_PATH} |cut -d "/" -f 1`
    SVN_BRANCH=`echo "${SVN_PATH}"| cut -d "/" -f 2`
    url=`grep URL: conftemp.svn|cut -d: -f 2-|cut -c2-`
fi

if test -d .git; then
    GIT_SHA1=`git rev-parse HEAD | cut -c -8 `
fi

if test -f FULL_VERSION; then
    FULL_VERSION_FILE="FULL_VERSION"
    OLD_VERSION=`cat $FULL_VERSION_FILE`
else if test -n "$srcdir" -a -f $srcdir/FULL_VERSION; then
    FULL_VERSION_FILE="$srcdir/FULL_VERSION"
    OLD_VERSION=`cat $FULL_VERSION_FILE`
else
    FULL_VERSION_FILE="FULL_VERSION"
    OLD_VERSION=
fi
fi

if test -n "$srcdir"; then
    VERSION_FILE="$srcdir/VERSION"
else
    VERSION_FILE="VERSION"
fi
VERSION=`cat $VERSION_FILE`

if test -n "$SVN_REV"; then
    if test "${SVN_TYPE}" = "branches"; then
        VERSION=${VERSION}.svn.${SVN_REV}
    else if test "${SVN_TYPE}" = "trunk"; then
        VERSION=${VERSION}.svn.${SVN_REV}
    else
        RC=`echo "${SVN_BRANCH}"| grep "rc"`
        if test -n "$RC"; then
	    VERSION=`echo "${SVN_BRANCH}"| sed 's/[^0-9]*// ; s/[_.]//g'`
	    VERSION=`echo ${VERSION}| sed 's/^\([0-9]\)\([0-9]\)\([0-9]\)/\1.\2.\3/'`
        fi
    fi
    fi

else if test -n "$GIT_SHA1"; then
    VERSION=${VERSION}".git."${GIT_SHA1}

else if test -n "$OLD_VERSION"; then
    VERSION=$OLD_VERSION
fi
fi
fi

if test "$VERSION" != "$OLD_VERSION" -o $VERSION_FILE -nt FULL_VERSION; then
    echo "$VERSION" > FULL_VERSION
fi