diff options
Diffstat (limited to 'tools/gen-version.sh')
| -rwxr-xr-x | tools/gen-version.sh | 27 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 file changed, 27 insertions, 0 deletions
diff --git a/tools/gen-version.sh b/tools/gen-version.sh new file mode 100755 index 0000000..b28e987 --- /dev/null +++ b/tools/gen-version.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# Writes a "CGIT_VERSION = ..." line into the output file, which the build +# then includes. Run it from the project root, as gen-version.sh <fallback> +# [output], so that git describe reports cgit rather than the bundled git +# submodule. The output file defaults to VERSION. + +version=$1 +output=${2:-VERSION} + +# Prefer what git describe reports, but only at the top of the cgit working +# tree, and keep the fallback when it has nothing to say, as in a shallow or +# tagless clone. +if test "$(git rev-parse --git-dir 2>/dev/null)" = '.git' +then + described=$(git describe --abbrev=4 HEAD 2>/dev/null) + test -n "$described" && version=$described +fi + +new="CGIT_VERSION = $version" +old=$(cat "$output" 2>/dev/null) + +# Leaving the file untouched when nothing changed keeps make from rebuilding +# everything that depends on it. +test "$old" = "$new" && exit 0 + +echo "$new" > "$output" +cat "$output" |
