/
.version.sh
executable file
·80 lines (69 loc) · 2.65 KB
/
.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/sh
LC_ALL=C
export LC_ALL
prefix=""
mainversion=`awk '/Release/{print $5;exit}' ../NEWS`
parameter=`awk '/Release/{print $11;exit}' ../NEWS`
extra=""
if test -d .svn
then
revision=`svn info | grep "^Last Changed Rev:" | cut -f 2 -d ':' | tr -d ' '`
year=`svn info | grep "^Last Changed Date:" | cut -f 4 -d ' ' | cut -f 1 -d '-'`
month=`svn info | grep "^Last Changed Date:" | cut -f 4 -d ' ' | cut -f 2 -d '-'`
day=`svn info | grep "^Last Changed Date:" | cut -f 4 -d ' ' | cut -f 3 -d '-'`
hour=`svn info | grep "^Last Changed Date:" | cut -f 5 -d ' ' | cut -f 1 -d ':'`
minute=`svn info | grep "^Last Changed Date:" | cut -f 5 -d ' ' | cut -f 2 -d ':'`
revision_human=$revision
src="svn"
prefix="svn_r"
elif test -d ../../.git
then
branch=`git branch | grep '^*' | awk '{ print $2}'`
branch_point=$(git merge-base $branch HEAD)
dateinfo=$(git show --pretty='format:%ai' $branch_point | head -1)
year=$(echo $dateinfo | cut -f 1 -d '-')
month=$(echo $dateinfo | cut -f 2 -d '-')
day=$(echo $dateinfo | cut -f 3 -d '-' | cut -f 1 -d ' ')
hour=$(echo $dateinfo | cut -f 2 -d ' ' | cut -f 1 -d ':')
minute=$(echo $dateinfo | cut -f 2 -d ' ' | cut -f 2 -d ':')
revision="`git show --pretty='format:%h'|head -1`"
revision_human=$revision
revision_prefix="0x"
prefix="git_"
elif test -f ../NEWS
then
revision=$($PYTHON -c "print ''.join([ '%0.2x' % int(i) for i in \"$mainversion\".split('.')])")
revision_prefix="0x"
revision_human=$mainversion
prefix="v"
dateinfo=$($PYTHON -c 'import os.path,time;print time.strftime("%Y-%m-%d %H:%M", time.gmtime(os.path.getmtime("../NEWS")))')
year=$(echo $dateinfo | cut -f 1 -d '-')
month=$(echo $dateinfo | cut -f 2 -d '-')
day=$(echo $dateinfo | cut -f 3 -d '-' | cut -f 1 -d ' ')
hour=$(echo $dateinfo | cut -f 2 -d ' ' | cut -f 1 -d ':')
minute=$(echo $dateinfo | cut -f 2 -d ' ' | cut -f 2 -d ':')
else
extra="UNKNOWN_VERSION"
revision=9999
year="9999"
month="99"
day="99"
hour="99"
minute="99"
src="custom"
fi
date="$year-$month-$day"
time="$hour:$minute"
if test "$1" ; then
extra="_$1"
fi
echo "#define MAINVERSION \"${mainversion}\""
echo "#define VERSION_EXTRA \"${extra}\""
echo "#define VERSION_REVISION ${revision_prefix}${revision}"
echo "#define VERSION_RELEASE \"${prefix}${revision_human}_${date}_${time}${extra}\""
echo "#define VERSION_YEAR `echo ${year} | sed 's/^[0]//g'`"
echo "#define VERSION_MONTH `echo ${month} | sed 's/^[0]//g'`"
echo "#define VERSION_DAY `echo ${day} | sed 's/^[0]//g'`"
echo "#define VERSION_HOUR `echo ${hour} | sed 's/^[0]//g'`"
echo "#define VERSION_MINUTE `echo ${minute} | sed 's/^[0]//g'`"
echo "#define VERSION_PARAMETER `echo ${parameter} | sed 's/\(.*\)./\1/'`"