1
0
mirror of https://github.com/moparisthebest/sslh synced 2024-11-13 12:45:05 -05:00
sslh/genver.sh
Jason Cooper f36eb7be39 version.h: dynamically create version number based on git
When building the source from a checked out tag, eg v1.15, VERSION will
equal v1.15.  However, when building from anything other than a tagged
version, you get 'v1.15-4-g50432d5-dirty' meaning I was 4 patches in
front of v1.15, particularly '50432d5' was my current HEAD, and I had
uncommited changes, '-dirty'.

Very useful for folks submitting bug reports on versions they compiled
themselves.

Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2013-09-16 21:56:45 +02:00

34 lines
714 B
Bash
Executable File

#!/bin/sh
if [ ${#} -eq 1 ] && [ "x$1" == "x-r" ]; then
# release text only
QUIET=1
else
QUIET=0
fi
if head=`git rev-parse --verify HEAD 2>/dev/null`; then
if [ $QUIET -ne 1 ]; then
printf "#ifndef _VERSION_H_ \n"
printf "#define _VERSION_H_ \n\n"
printf "#define VERSION \""
fi
# generate the version info based on the tag
(git describe --tags || git --describe || git describe --all --long) \
2>/dev/null | tr -d '\n'
# Are there uncommitted changes?
git update-index --refresh --unmerged > /dev/null
if git diff-index --name-only HEAD | grep -v "^scripts/package" \
| read dummy; then
printf '%s' -dirty
fi
if [ $QUIET -ne 1 ]; then
printf "\"\n"
printf "\n#endif\n"
fi
fi