n2n/scripts/version.sh
Hamish Coleman 267b297150 Switch build date to use the last commit time
This reduces binary changes if the same commit version is re-built
2023-05-08 16:46:01 +01:00

63 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
#
# Output the current version number
#
usage() {
echo "Usage: $0 [date|short|hash]"
echo
echo "Determine the correct version number for the current build"
exit 0
}
# We assume this script is in the TOPDIR/scripts directory and use that
# to find any other files we need
TOPDIR=$(dirname "$0")/..
VER_FILE_SHORT=$(cat "${TOPDIR}/VERSION")
if [ -d "$TOPDIR/.git" ]; then
# If there is a .git directory in our TOPDIR, then this is assumed to be
# real git checkout
cd "$TOPDIR" || exit 1
VER_GIT_SHORT=$(git describe --abbrev=0)
if [ "$VER_FILE_SHORT" != "$VER_GIT_SHORT" ]; then
echo "Error: VERSION file does not match tag version ($VER_FILE_SHORT != $VER_GIT_SHORT)"
exit 1
fi
VER_SHORT="$VER_GIT_SHORT"
VER_HASH=$(git rev-parse --short HEAD)
VER=$(git describe --abbrev=7 --dirty)
DATE=$(git log -1 --format=%cd)
else
# If there is no .git directory in our TOPDIR, we fall back on relying on
# the VERSION file
VER_SHORT="$VER_FILE_SHORT"
VER_HASH="HEAD"
VER="$VER_FILE_SHORT"
DATE=$(date)
fi
case "$1" in
date)
echo "$DATE"
;;
hash)
echo "$VER_HASH"
;;
short)
echo "$VER_SHORT"
;;
"")
echo "$VER"
;;
*)
usage
;;
esac