summaryrefslogtreecommitdiff
path: root/buildutil/version-util
diff options
context:
space:
mode:
Diffstat (limited to 'buildutil/version-util')
-rwxr-xr-xbuildutil/version-util75
1 files changed, 61 insertions, 14 deletions
diff --git a/buildutil/version-util b/buildutil/version-util
index f35d7f7..fa4b127 100755
--- a/buildutil/version-util
+++ b/buildutil/version-util
@@ -1,18 +1,32 @@
#!/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.
+# 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 currently only for CVS.
# -----------------------------------------------------------------------------
-[ $# -lt 1 ] && echo "USAGE: version-util <versionfile>" && exit 1
+[ $# -lt 1 ] && echo "USAGE: version-util [-F] <versionfile>" && exit 1
VERS_FILE=$1
+FORCE_EMPTY=0
+
+[ "$VERS_FILE" == "-F" -a $# -lt 2 ] && echo "USAGE: version-util [-F] <versionfile>" && exit 1
+
+if [ $# -gt 1 ]; then
+ VERS_FILE=$2
+ FORCE_EMPTY=1
+fi
+
+
+SCRIPT_PATH=`dirname $0`
+
+# echo "file: ${VERS_FILE}, force = $FORCE_EMPTY"
+# exit 0
function createVers ()
{
@@ -27,11 +41,32 @@ cat <<EOF
EOF
}
+function fileVersions()
+{
+ for file in `find . -wholename '*CVS/Entries' -print`
+ do
+ sed -e's/\//|/g' -e's/|/\//' $file \
+ | grep --label=$file -H '^/' \
+ | sed -e's/\/CVS\/Entries://' -e's/\.\///'
+ done
+}
+
+function cvsLog()
+{
+ echo "= == ===marker=== == ="
+ cvs log -b -N 2> /dev/null
+}
+
+function cvsData()
+{
+ fileVersions
+ cvsLog
+}
+
function cvsVers ()
{
- d=`cvs log -r -N 2> /dev/null \
- | grep '^date:' \
- | cut -d ' ' -f 2-4 \
+ d=`cvsData \
+ | awk -f ${SCRIPT_PATH}/version-util.awk \
| sort -u \
| tail -1 \
| tr -d ' \-:'`
@@ -51,6 +86,11 @@ function gitVers ()
echo "_git_${b}_${h}"
}
+function emptyVers ()
+{
+ echo ""
+}
+
function checkVers ()
{
s=`$1`
@@ -60,8 +100,6 @@ function checkVers ()
else
v=`grep '^#define VERSION_SUFFIX' ${VERS_FILE} \
| awk '{print $3}'`
- echo "s: $s"
- echo "v: $v"
if [ "$v" != "\"$s\"" ]; then
echo "$VERS_FILE is being recreated!"
createVers $s > ${VERS_FILE}
@@ -69,10 +107,19 @@ function checkVers ()
fi
}
+if [ $FORCE_EMPTY -eq 1 ]; then
+ checkVers emptyVers
+ exit 0
+fi
+
if [ -d CVS ]; then
checkVers cvsVers
+ exit 0
fi
if [ -d .git ]; then
checkVers gitVers
+ exit 0
fi
+
+checkVers emptyVers