From f8cd80b183eaa5752ee38cf3fbc6d0193fb473b0 Mon Sep 17 00:00:00 2001 From: "ardi@ist-einmalig.de" Date: Thu, 30 Jul 2009 22:40:44 +0000 Subject: [PATCH] change svnrev.sh to find the real last rev-nr --- svnrev.sh | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/svnrev.sh b/svnrev.sh index 32fed47a..2fc05e31 100644 --- a/svnrev.sh +++ b/svnrev.sh @@ -1,22 +1,38 @@ #! /bin/sh # -a=$(svnversion -n . 2> /dev/null) -[ -n "$a" ] || a=$(SubWCRev . 2> /dev/null| tr -d '\n' | sed 's/[^0-9]*[0-9]*[^0-9]*\([0-9]*\).*/\1/') +rev_new_raw=$(svnversion -n . 2>/dev/null | tr '\n' ' ' | tr -d '\r') +[ -n "$rev_new_raw" ] || rev_new_raw=$(SubWCRev . 2>/dev/null | tr '\n' ' ' | tr -d '\r') -[ -f ./source/svnrev.c ] || touch ./source/svnrev.c -b=$(cat ./source/svnrev.c | tr -d '\n' | sed 's/[^0-9]*\([0-9]*\).*/\1/') +rev_new_raw=$(echo $rev_new_raw | sed 's/[^0-9]*\([0-9]*\)\(.*\)/\1 \2/') +rev_new=0 +a=$(echo $rev_new_raw | sed 's/\([0-9]*\).*/\1/') +let "a+=0" +#find max rev +while [ "$a" ]; do + [ "$a" -gt "$rev_new" ] && rev_new=$a + rev_new_raw=$(echo -n $rev_new_raw | sed 's/[0-9]*[^0-9]*\([0-9]*\)\(.*\)/\1 \2/') + a=$(echo $rev_new_raw | sed 's/\([0-9]*\).*/\1/') +done -if [ "$a" != "$b" ] || [ ! -n "$a" ]; then - [ -n "$a" ] || a='unknow' - echo '#define SVN_REV "'$a'"' > ./source/svnrev.c - echo '' >> ./source/svnrev.c - echo 'const char *GetRev()' >> ./source/svnrev.c - echo '{ ' >> ./source/svnrev.c - echo ' return SVN_REV;' >> ./source/svnrev.c - echo '}' >> ./source/svnrev.c - echo '' >> ./source/svnrev.c - echo "Changed Rev $b to $a" >&2 +rev_old=$(cat ./source/svnrev.c 2>/dev/null | tr -d '\n' | sed 's/[^0-9]*\([0-9]*\).*/\1/') + +if [ "$rev_new" != "$rev_old" ] || [ ! -f ./source/svnrev.c ]; then + + cat < ./source/svnrev.c +#define SVN_REV "$rev_new" + +const char *GetRev() +{ + return SVN_REV; +} +EOF + + if [ -n "$rev_new" ]; then + echo "Changed Rev $rev_old to $rev_new" >&2 + else + echo "svnrev.c created" >&2 + fi echo >&2 fi echo $a