forked from kuglee/transmission
-
Notifications
You must be signed in to change notification settings - Fork 0
/
update-version-h.sh
executable file
·68 lines (54 loc) · 2.21 KB
/
update-version-h.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/sh
# Generate files to be included: only overwrite them if changed so make
# won't rebuild everything unless necessary
replace_if_differs ()
{
if cmp $1 $2 > /dev/null 2>&1; then
rm -f $1
else
mv -f $1 $2
fi
}
echo "creating libtransmission/version.h"
user_agent_prefix=`grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep user_agent_prefix | cut -d , -f 6`
peer_id_prefix=`grep m4_define configure.ac | sed "s/[][)(]/,/g" | grep peer_id_prefix | cut -d , -f 6`
major_version=`echo ${user_agent_prefix} | awk -F . '{print $1}'`
minor_version=`echo ${user_agent_prefix} | awk -F . '{print $2 + 0}'`
vcs_revision=
vcs_revision_file=REVISION
if [ -n "$JENKINS_URL" -a -n "$GIT_COMMIT" ]; then
vcs_revision=$GIT_COMMIT
elif [ -n "$TEAMCITY_PROJECT_NAME" -a -n "$BUILD_VCS_NUMBER" ]; then
vcs_revision=$BUILD_VCS_NUMBER
elif [ -d ".git" ] && type git >/dev/null 2>&1; then
vcs_revision=`git rev-list --max-count=1 HEAD`
elif [ -f "$vcs_revision_file" ]; then
vcs_revision=`cat "$vcs_revision_file"`
fi
vcs_revision=`echo $vcs_revision`
if [ -n "$vcs_revision" ]; then
[ -f "$vcs_revision_file" ] && [ "`cat "$vcs_revision_file"`" = "$vcs_revision" ] || echo "$vcs_revision" > "$vcs_revision_file"
else
vcs_revision=0
rm -f "$vcs_revision_file"
fi
vcs_revision=`echo $vcs_revision | head -c10`
cat > libtransmission/version.h.new << EOF
#pragma once
#define PEERID_PREFIX "${peer_id_prefix}"
#define USERAGENT_PREFIX "${user_agent_prefix}"
#define VCS_REVISION "${vcs_revision}"
#define VCS_REVISION_NUM ${vcs_revision}
#define SHORT_VERSION_STRING "${user_agent_prefix}"
#define LONG_VERSION_STRING "${user_agent_prefix} (${vcs_revision})"
#define VERSION_STRING_INFOPLIST ${user_agent_prefix}
#define MAJOR_VERSION ${major_version}
#define MINOR_VERSION ${minor_version}
EOF
# Add a release definition
case "${peer_id_prefix}" in
*X-) echo '#define TR_BETA_RELEASE 1' ;;
*Z-) echo '#define TR_NIGHTLY_RELEASE 1' ;;
*) echo '#define TR_STABLE_RELEASE 1' ;;
esac >> "libtransmission/version.h.new"
replace_if_differs libtransmission/version.h.new libtransmission/version.h