-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate_version
executable file
·82 lines (69 loc) · 2.08 KB
/
update_version
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
81
82
#!/bin/sh
#-----------------------------------------------------------------------
# Change the version number of the library. This changes the number in
# every file that it is known to appear in.
#
# Usage:
# update_version major minor micro
#-----------------------------------------------------------------------
usage="$0 major minor micro"
if [ $# -ne 3 ]; then
echo $usage
exit 1
fi
# Get the three components of the version number.
major="$1"
minor="$2"
micro="$3"
# Everything will need to be reconfigured after this change, so
# discard any existing configuration.
make distclean 2>/dev/null
# Check that the version components are all positive integers.
for c in $major $minor $micro; do
if echo "$c" | awk '{exit $1 ~ /^[0-9]+$/}'; then
echo 'Version number components must all be positive integers.'
exit 1
fi
done
#
# Update the version number in the configure.in script.
#
ed -s configure.in << EOF
/^MAJOR_VER=\"[0-9][0-9]*\"/ s/^.*$/MAJOR_VER=\"$major\"/
/^MINOR_VER=\"[0-9][0-9]*\"/ s/^.*$/MINOR_VER=\"$minor\"/
/^MICRO_VER=\"[0-9][0-9]*\"/ s/^.*$/MICRO_VER=\"$micro\"/
w
q
EOF
if which autoconf 1>/dev/null 2>&1; then
autoconf
else
echo 'Note that autoconf needs to be run.'
fi
#
# Update the version number in the libtecla header file script.
#
ed -s libtecla.h << EOF
/^#define TECLA_MAJOR_VER [0-9][0-9]*/ s/^.*$/#define TECLA_MAJOR_VER $major/
/^#define TECLA_MINOR_VER [0-9][0-9]*/ s/^.*$/#define TECLA_MINOR_VER $minor/
/^#define TECLA_MICRO_VER [0-9][0-9]*/ s/^.*$/#define TECLA_MICRO_VER $micro/
w
q
EOF
#
# Update the version number in the README file.
#
ed -s README << EOF
/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]* / s/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/version $major.$minor.$micro/
w
q
EOF
#
# Update the version number in the html index file.
#
ed -s html/index.html << EOF
/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./ s/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/version $major.$minor.$micro/g
/libtecla-[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./ s/libtecla-[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./libtecla-$major.$minor.$micro./g
w
q
EOF