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 | |
Simon Kelley | fdacfb0 | 2012-02-28 15:20:25 +0000 | [diff] [blame] | 14 | if which git >/dev/null 2>&1 && [ -d $1/.git ]; then |
| 15 | cd $1; git describe |
| 16 | elif grep '\$Format:%d\$' $1/VERSION >/dev/null 2>&1; then |
Simon Kelley | 98d76a0 | 2012-02-10 22:16:45 +0000 | [diff] [blame] | 17 | # unsubstituted VERSION, but no git available. |
| 18 | echo UNKNOWN |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 19 | else |
Simon Kelley | 990123a | 2012-12-14 11:56:15 +0000 | [diff] [blame^] | 20 | 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] | 21 | |
| 22 | if [ $? -eq 0 ]; then |
Simon Kelley | 00acd06 | 2012-08-17 14:18:50 +0100 | [diff] [blame] | 23 | echo "${vers}" | sort | head -n 1 | sed 's/^v//' |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 24 | else |
Simon Kelley | fdacfb0 | 2012-02-28 15:20:25 +0000 | [diff] [blame] | 25 | cat $1/VERSION |
Simon Kelley | a4f04ed | 2012-01-06 11:47:02 +0000 | [diff] [blame] | 26 | fi |
| 27 | fi |
| 28 | |
| 29 | exit 0 |
| 30 | |