2016-12-17 19:39:01 +08:00

47 lines
1.4 KiB
Bash
Executable File

#!/bin/sh
## As standalone run from this directory as "./svnxrev.sh .."
if [ -d $1/.svn ] ; then
svn info --xml $1 | perl $1/src/svnxrev.pl $1/src/sphinxversion.h
elif [ -d $1/.hg ] ; then
ddr=`pwd`
cd $1
target="src/sphinxversion.h"
startrev=`hg id -n | sed 's/\\+//'`
rev="$startrev"
svnrev=`hg log -r$rev --template "{desc}" | grep ^\\\\[svn | sed 's/\\[svn r//; s/\\].*//'`
# while [ "z" = "z$svnrev" ] ; do
# revplus=`hg log -r$rev --template "{rev}"`
# rev=`expr $revplus - 1`
# svnrev=`hg log -r$rev --template "{desc}" | grep ^\\\\[svn | sed 's/\\[svn r//; s/\\].*//'`
# done
rsvnrev="r$svnrev"
node=`hg log -r$startrev --template "{node}"`
branch=`hg log -r$startrev --template "{branches}"`
[ "z$branch" = "ztrunk" ] && branch=""
[ ! "z$startrev" = "z$rev" ] && rsvnrev=r"$svnrev/$node"
printf "#define SPH_SVN_TAG \"%s\"\n" $branch > $target.tmp
printf "#define SPH_SVN_REV %s\n" $svnrev >> $target.tmp
printf "#define SPH_SVN_REVSTR \"%s\"\n" $svnrev >> $target.tmp
printf "#define SPH_SVN_TAGREV \"%s\"\n" $rsvnrev >> $target.tmp
# dont touch it ALL the time
if [ -f $target ]; then
old=`cat $target`
new=`cat $target.tmp`
if [ "z$old" != "z$new" ] ; then
mv -f $target.tmp $target
else
rm -f $target.tmp
fi
else
mv -f $target.tmp $target
fi
cd "$ddr"
exit 0
fi
if [ ! -f ./sphinxversion.h ] ; then
cat *.cpp *.h | perl srcxrev.pl > sphinxversion.h
fi