diff options
Diffstat (limited to 'version-gen.sh')
| -rwxr-xr-x | version-gen.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/version-gen.sh b/version-gen.sh new file mode 100755 index 0000000..5c6b965 --- /dev/null +++ b/version-gen.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-2.0 + +version_file='version.c' +ver='unnamed_version' +# First try git, then gitweb, then default. +if [ -e '.git' -o -e '../.git' ]; then + git_ver=$(git describe --abbrev=4 HEAD 2>/dev/null) + [ -z "$git_ver" ] && git_ver="$ver" + # update stat information in index to match working tree + git update-index -q --refresh > /dev/null + # if there are differences (exit code 1), the working tree is dirty + git diff-index --quiet HEAD || git_ver=$git_ver-dirty + ver=$git_ver +elif [ "${PWD%%-*}" = 'tfortune-' ]; then + ver=${PWD##*/tfortune-} +fi +ver=${ver#v} + +echo "$ver" + +# update version file if necessary +content="const char *lls_version(void) {return \"$ver\";};" +[ -r "$version_file" ] && echo "$content" | cmp -s - $version_file && exit 0 +echo >&2 "new git version: $ver" +echo "$content" > $version_file |
