#! /bin/sh [ -n "$PROJROOT" ] || { echo "Require environment var PROJROOT" >&2; exit 1; } echo " -> Checking Version" >&2 version_parts=$(grep -i version $PROJROOT/Changes | head -n 1 | sed -ne 's/Version *\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)[^0-9]*\([-0-9]*\)/\1 \2 \3 \4/p') read major minor release date <&2 exit 1 fi echo " Changes version is $major.$minor.$release ($date)" >&2 if [ -d "$PROJROOT/.git" ]; then export GIT_DIR="$PROJROOT/.git" export GIT_WORK_TREE="$PROJROOT" head_hash=$(git log -n 1 --format=format:%h) tag_hash=$(git log -n 1 --format=format:%h v$major.$minor.$release -- 2>/dev/null) git_dirty=$(git status --porcelain | wc -l) if [ "$git_dirty" -gt 0 -o "$tag_hash" != "$head_hash" ]; then echo " Git state differs from ./Changes" >&2 extra="$head_hash" date="$(git log -n 1 --format=format:%ci | sed -e 's/ /T/;s/ //')" if [ "$git_dirty" -gt 0 ]; then extra="$extra+changes" date=`date "+%Y-%m-%dT%H:%M:%S"`; fi fi fi echo " Version is $major $minor $release $extra $date" >&2; [ -n "$extra" ] && suffix="-$extra" || suffix=''; echo " -> Regenerating Version.c" >&2 cat <