#!/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