-
Notifications
You must be signed in to change notification settings - Fork 2
/
getversion
executable file
·42 lines (36 loc) · 1.29 KB
/
getversion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env bash
# Make sure we're running from the root git repository, not whatever submodule
# we could have been called from.
pushd $(dirname "$0") > /dev/null
VERSION=$(perl -e 'while(<>){print $1 if (/^PACKAGE_VERSION='\''(.+)'\''$/)}' < configure)
BUILDNUMBER=dev
# Call git describe, and convert it to a semi-semantic version, like
# 5.0.0-alpha.0+dev.52.g123abc
generate_dev_version() {
git describe | perl -pe 's/(.*)-([0-9]*)-(g[0-9a-f]*)/\1+dev.\2.\3/'
}
# If we are in a Git repository and have git installed, build the version
# string using the latest tag in case it's reachable
if type git >/dev/null 2>&1 && [ -d '.git' ] ; then
# Check for tag reachability, in case of shallow clones we might not
# be able to use git describe since the commit which was tagged is
# unreachable even if we have pulled the tags. If we can reach it,
# overwrite the VERSION from autoconf with the output, else append
# HEAD commit info
if git describe >/dev/null 2>&1 ; then
VERSION=$(generate_dev_version)
else
VERSION+=+
VERSION+=$(git rev-parse --short HEAD)
fi
fi
FLAG="${1:-noflag}"
if [ "$FLAG" = '--short' ] ; then
echo "${VERSION}"
else
if [ -f BUILD_NUMBER ] ; then
BUILDNUMBER=`cat BUILD_NUMBER`
fi
echo "${VERSION} build ${BUILDNUMBER}"
fi
popd > /dev/null