-
Notifications
You must be signed in to change notification settings - Fork 165
/
Copy pathgap-version-gen.sh
executable file
·47 lines (40 loc) · 1.17 KB
/
gap-version-gen.sh
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
43
44
45
46
47
#!/bin/sh
# This script generates a version string for GAP based on the VERSION file
# (if any) and the output of `git describe` (if inside a git working tree).
#
# The result is printed into cnf/GAP-VERSION-FILE, but only if the version
# string changed. This way, we do not trigger unnecessary rebuilds.
# This script is based on git.git's GIT-VERSION-GEN script
GVF=cnf/GAP-VERSION-FILE
DEF_VER=${1:-4.dev}
LF='
'
# First try git-describe, then default.
if test -d ${GIT_DIR:-.git} -o -f .git &&
VN=$(git describe --match "v[0-9]*" --abbrev=7 HEAD 2>/dev/null) &&
case "$VN" in
*$LF*) (exit 1) ;;
v[0-9]*)
git update-index -q --refresh
test -z "$(git diff-index --name-only HEAD --)" ||
VN="$VN-dirty" ;;
esac
then
VN=$(echo "$VN");
else
VN="$DEF_VER"
fi
VN=$(expr "$VN" : v*'\(.*\)')
# Read GVF, if it exists. Then write the GVF back, but only
# if it is missing, or if the version changed.
if test -r $GVF
then
VC=$(sed -e 's/^GAP_BUILD_VERSION = //' -e '/GAP_BUILD_DATETIME/d' <$GVF)
else
VC=unset
fi
test "$VN" = "$VC" || {
echo >&2 "GAP_BUILD_VERSION = $VN"
echo "GAP_BUILD_VERSION = $VN" >$GVF
echo "GAP_BUILD_DATETIME = $(date '+%Y-%m-%d %H:%M:%S%z')" >>$GVF
}