Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | # Determine the version string to build into a binary. |
| 4 | # When building in the git repository, we can use the output |
| 5 | # of "git describe" which gives an unequivocal answer. |
| 6 | # |
| 7 | # Failing that, we use the contents of the VERSION file |
| 8 | # which has a set of references substituted into it by git. |
| 9 | # If we can find one which matches $v[0-9].* then we assume it's |
| 10 | # a version-number tag, else we just use the whole string. |
Simon Kelley | 00acd06 | 2012-08-17 14:18:50 +0100 | [diff] [blame] | 11 | # If there is more than one v[0-9].* tag, sort them and use the |
| 12 | # first. This favours, eg v2.63 over 2.63rc6. |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 13 | |
Bert Gijsbers | 16f03e7 | 2017-03-06 23:07:32 +0000 | [diff] [blame] | 14 | # Change directory to the toplevel source directory. |
| 15 | if test -z "$1" || ! test -d "$1" || ! cd "$1"; then |
| 16 | echo "$0: First argument $1 must be toplevel dir." >&2 |
| 17 | exit 1 |
| 18 | fi |
| 19 | |
Johnny S. Lee | 8efd731 | 2015-04-26 22:23:57 +0100 | [diff] [blame] | 20 | if which git >/dev/null 2>&1 && \ |
Bert Gijsbers | 16f03e7 | 2017-03-06 23:07:32 +0000 | [diff] [blame] | 21 | ([ -d .git ] || grep '^gitdir:' .git >/dev/null 2>&1) && \ |
| 22 | git describe >/dev/null 2>&1; then |
| 23 | git describe | sed 's/^v//' |
Simon Kelley | fdacfb0 | 2012-02-28 15:20:25 +0000 | [diff] [blame] | 24 | elif grep '\$Format:%d\$' $1/VERSION >/dev/null 2>&1; then |
Bert Gijsbers | 16f03e7 | 2017-03-06 23:07:32 +0000 | [diff] [blame] | 25 | # unsubstituted VERSION, but no git available. |
Simon Kelley | 98d76a0 | 2012-02-10 22:16:45 +0000 | [diff] [blame] | 26 | echo UNKNOWN |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 27 | else |
Simon Kelley | 990123a | 2012-12-14 11:56:15 +0000 | [diff] [blame] | 28 | vers=`cat $1/VERSION | sed 's/[(), ]/,/ g' | tr ',' '\n' | grep ^v[0-9]` |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 29 | |
| 30 | if [ $? -eq 0 ]; then |
Shantanu Gadgil | f4f4007 | 2015-02-11 20:16:59 +0000 | [diff] [blame] | 31 | echo "${vers}" | sort -r | head -n 1 | sed 's/^v//' |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 32 | else |
Simon Kelley | fdacfb0 | 2012-02-28 15:20:25 +0000 | [diff] [blame] | 33 | cat $1/VERSION |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 34 | fi |
| 35 | fi |
| 36 | |
| 37 | exit 0 |
| 38 | |