summaryrefslogtreecommitdiff
path: root/buildutil
diff options
context:
space:
mode:
Diffstat (limited to 'buildutil')
-rwxr-xr-xbuildutil/version-util43
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