diff options
-rwxr-xr-x | buildutil/version-util | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/buildutil/version-util b/buildutil/version-util new file mode 100755 index 0000000..7e377ab --- /dev/null +++ b/buildutil/version-util @@ -0,0 +1,43 @@ +#!/bin/sh +# ----------------------------------------------------------------------------- +# Small shell script to determine the last commit version of the project +# It checks for CVS and .git repositories. +# The output is a string that can be used in a define at compile time to +# automatically mark repository versions. +# For CVS repositories the string contains the date and time of the commit +# that lead to the current version of files. +# For git repositories the output contains the git-id of the current tree. +# An indication if localy modified files exist is added. +# ----------------------------------------------------------------------------- + +function cvsVers () +{ + d=`cvs log -r -N 2> /dev/null \ + | grep '^date:' \ + | cut -d ' ' -f 2-4 \ + | sort -u \ + | tail -1 \ + | tr -d ' \-:'` + m=`cvs status 2> /dev/null \ + | grep 'Status: Locally Modified' > /dev/null && echo "_MOD"` + echo "_cvs_${d}${m}" +} + +function gitVers () +{ + b=`git branch \ + | grep '^*' \ + | sed -e's/^* //'` + h=`git show --pretty=format:"%h_%ci" HEAD \ + | head -1 \ + | tr -d ' \-:'` + echo "_git_${b}_${h}" +} + +if [ -d CVS ]; then + cvsVers +fi + +if [ -d .git ]; then + gitVers +fi |