-
Notifications
You must be signed in to change notification settings - Fork 4
/
version.sh
executable file
·48 lines (40 loc) · 969 Bytes
/
version.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
48
#!/bin/sh
# Tag revisions like this:
# $ git tag -a -m "Version 0.2" v0.2 HEAD
VF=VERSION
DEFAULT_VERSION=v1.0
LF='
'
TAG_TYPE="v*"
# First see if there is a version file (included in release tarballs),
# then try git-describe, then default.
if test -d .git -o -f .git &&
VN="$(git describe --abbrev=4 --long --match="$TAG_TYPE" 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-mod" ;;
esac
then
continue
#VN=$(echo "$VN" | sed -e 's/-/./g');
else
VN="$DEFAULT_VERSION"
fi
#VN=$(expr "$VN" : v*'\(.*\)')
# Show the version to the user via stderr
echo >&2 "$VN"
# Parse the existing VERSION-FILE
if test -r $VF
then
VC=$(sed -e 's/^version: //' <$VF)
else
VC=unset
fi
# If version has changed, update VERSION-FILE
test "$VN" = "$VC" || {
echo "$VN" >$VF
echo >&2 "($VF updated)"
}