UpdatePoint revision 1.1.1.1.8.2 1 1.1.1.1.8.2 tls #! /bin/sh
2 1.1.1.1.8.2 tls
3 1.1.1.1.8.2 tls # showusage is set to 1 on any command-line syntax error
4 1.1.1.1.8.2 tls showusage=0
5 1.1.1.1.8.2 tls # are we playing by stable or dev rules?
6 1.1.1.1.8.2 tls repo=
7 1.1.1.1.8.2 tls # test is set to 1 if -t/--test is given to prevent modifications
8 1.1.1.1.8.2 tls test=0
9 1.1.1.1.8.2 tls
10 1.1.1.1.8.2 tls case "$#" in
11 1.1.1.1.8.2 tls 1) repo=$1
12 1.1.1.1.8.2 tls ;;
13 1.1.1.1.8.2 tls 2) repo=$2
14 1.1.1.1.8.2 tls case $1 in
15 1.1.1.1.8.2 tls -t|--test)
16 1.1.1.1.8.2 tls test=1
17 1.1.1.1.8.2 tls ;;
18 1.1.1.1.8.2 tls *)
19 1.1.1.1.8.2 tls showusage=1
20 1.1.1.1.8.2 tls ;;
21 1.1.1.1.8.2 tls esac
22 1.1.1.1.8.2 tls ;;
23 1.1.1.1.8.2 tls *) showusage=1
24 1.1.1.1.8.2 tls ;;
25 1.1.1.1.8.2 tls esac
26 1.1.1.1.8.2 tls
27 1.1.1.1.8.2 tls case "$repo" in
28 1.1.1.1.8.2 tls dev|stable)
29 1.1.1.1.8.2 tls ;;
30 1.1.1.1.8.2 tls '')
31 1.1.1.1.8.2 tls showusage=1
32 1.1.1.1.8.2 tls ;;
33 1.1.1.1.8.2 tls *) echo "Unexpected repo type: <$repo>!"
34 1.1.1.1.8.2 tls showusage=1
35 1.1.1.1.8.2 tls ;;
36 1.1.1.1.8.2 tls esac
37 1.1.1.1.8.2 tls
38 1.1.1.1.8.2 tls case "$showusage" in
39 1.1.1.1.8.2 tls 1) echo "Usage: $0 [-t] <stable|dev>"
40 1.1.1.1.8.2 tls echo "No changes are made to packageinfo.sh if -t is given."
41 1.1.1.1.8.2 tls exit 1
42 1.1.1.1.8.2 tls ;;
43 1.1.1.1.8.2 tls esac
44 1.1.1.1.8.2 tls
45 1.1.1.1.8.2 tls
46 1.1.1.1.8.2 tls set -e
47 1.1.1.1.8.2 tls
48 1.1.1.1.8.2 tls . ./packageinfo.sh
49 1.1.1.1.8.2 tls
50 1.1.1.1.8.2 tls case "$repotype" in
51 1.1.1.1.8.2 tls $repo)
52 1.1.1.1.8.2 tls ;;
53 1.1.1.1.8.2 tls *) echo "You indicated repo type <$repo> but packageinfo.sh"
54 1.1.1.1.8.2 tls echo "indicates <$repotype>."
55 1.1.1.1.8.2 tls exit 1
56 1.1.1.1.8.2 tls ;;
57 1.1.1.1.8.2 tls esac
58 1.1.1.1.8.2 tls
59 1.1.1.1.8.2 tls ver_repo_mismatch=1
60 1.1.1.1.8.2 tls
61 1.1.1.1.8.2 tls case "$minor" in
62 1.1.1.1.8.2 tls 1|3|5|7|9)
63 1.1.1.1.8.2 tls case "$repo" in
64 1.1.1.1.8.2 tls dev)
65 1.1.1.1.8.2 tls ver_repo_mismatch=0
66 1.1.1.1.8.2 tls ;;
67 1.1.1.1.8.2 tls stable)
68 1.1.1.1.8.2 tls ;;
69 1.1.1.1.8.2 tls esac
70 1.1.1.1.8.2 tls ;;
71 1.1.1.1.8.2 tls 0|2|4|6|8)
72 1.1.1.1.8.2 tls case "$repo" in
73 1.1.1.1.8.2 tls dev)
74 1.1.1.1.8.2 tls ;;
75 1.1.1.1.8.2 tls stable)
76 1.1.1.1.8.2 tls ver_repo_mismatch=0
77 1.1.1.1.8.2 tls ;;
78 1.1.1.1.8.2 tls esac
79 1.1.1.1.8.2 tls ;;
80 1.1.1.1.8.2 tls esac
81 1.1.1.1.8.2 tls
82 1.1.1.1.8.2 tls case "$ver_repo_mismatch" in
83 1.1.1.1.8.2 tls 1) echo "Minor version <$minor> mismatches repotype <$repo>."
84 1.1.1.1.8.2 tls exit 1
85 1.1.1.1.8.2 tls ;;
86 1.1.1.1.8.2 tls esac
87 1.1.1.1.8.2 tls
88 1.1.1.1.8.2 tls # Do we want to bump the point?
89 1.1.1.1.8.2 tls bp=1
90 1.1.1.1.8.2 tls # Do we want to bump the beta point?
91 1.1.1.1.8.2 tls bbp=0
92 1.1.1.1.8.2 tls # Do we want to change the RC point? (n=no, z=empty rcpoint and zero
93 1.1.1.1.8.2 tls # betapoint, i=incr)
94 1.1.1.1.8.2 tls crcp=n
95 1.1.1.1.8.2 tls # Do we want to change the prerelease value?
96 1.1.1.1.8.2 tls setpr=0
97 1.1.1.1.8.2 tls
98 1.1.1.1.8.2 tls # for stable:
99 1.1.1.1.8.2 tls # if we are not in a beta or RC state, enter beta unless point is NEW.
100 1.1.1.1.8.2 tls # if we are in a beta state:
101 1.1.1.1.8.2 tls # - bump the beta point
102 1.1.1.1.8.2 tls # else if we are in an RC state:
103 1.1.1.1.8.2 tls # - if rcpoint is GO:
104 1.1.1.1.8.2 tls # - - set rcpoint= (empty)
105 1.1.1.1.8.2 tls # - - set prerelease= (empty)
106 1.1.1.1.8.2 tls # - - set betapoint=0
107 1.1.1.1.8.2 tls # - else
108 1.1.1.1.8.2 tls # - - if rcpoint==(empty)
109 1.1.1.1.8.2 tls # - - - (bump-point) and set rcpoint to 0 (and fall thru, so -RC1 is first)
110 1.1.1.1.8.2 tls # - - bump the RC point
111 1.1.1.1.8.2 tls
112 1.1.1.1.8.2 tls # for dev, we only want to bump-point and possibly clear prerelease,
113 1.1.1.1.8.2 tls # but we do not modify rcpoint nor betapoint.
114 1.1.1.1.8.2 tls
115 1.1.1.1.8.2 tls case "$repo" in
116 1.1.1.1.8.2 tls dev)
117 1.1.1.1.8.2 tls case "$point" in
118 1.1.1.1.8.2 tls [Nn][Ee][Ww])
119 1.1.1.1.8.2 tls crcp=z
120 1.1.1.1.8.2 tls ;;
121 1.1.1.1.8.2 tls *)
122 1.1.1.1.8.2 tls # crcp=n
123 1.1.1.1.8.2 tls ;;
124 1.1.1.1.8.2 tls esac
125 1.1.1.1.8.2 tls # bp=1
126 1.1.1.1.8.2 tls ;;
127 1.1.1.1.8.2 tls stable)
128 1.1.1.1.8.2 tls case "$prerelease" in
129 1.1.1.1.8.2 tls '')
130 1.1.1.1.8.2 tls case "$betapoint::$rcpoint::$point" in
131 1.1.1.1.8.2 tls *::*::NEW)
132 1.1.1.1.8.2 tls # new minor release (no p)
133 1.1.1.1.8.2 tls crcp=z
134 1.1.1.1.8.2 tls # bp=1
135 1.1.1.1.8.2 tls ;;
136 1.1.1.1.8.2 tls 0::::*)
137 1.1.1.1.8.2 tls # start of first beta cycle for the next point release
138 1.1.1.1.8.2 tls setpr=1
139 1.1.1.1.8.2 tls newpr=beta
140 1.1.1.1.8.2 tls # bp=1
141 1.1.1.1.8.2 tls bbp=1
142 1.1.1.1.8.2 tls ;;
143 1.1.1.1.8.2 tls 0::[Gg][Oo]::*)
144 1.1.1.1.8.2 tls # skip all -beta and -RC prereleases to the next point.
145 1.1.1.1.8.2 tls crcp=z
146 1.1.1.1.8.2 tls setpr=1
147 1.1.1.1.8.2 tls newpr=
148 1.1.1.1.8.2 tls # bp=1
149 1.1.1.1.8.2 tls # bbp=0
150 1.1.1.1.8.2 tls ;;
151 1.1.1.1.8.2 tls *) echo "betapoint is <$betapoint>, rcpoint is <$rcpoint>"
152 1.1.1.1.8.2 tls echo "betapoint must be 0 and rcpoint must be empty to start the"
153 1.1.1.1.8.2 tls echo "beta cycle."
154 1.1.1.1.8.2 tls exit 1
155 1.1.1.1.8.2 tls ;;
156 1.1.1.1.8.2 tls esac
157 1.1.1.1.8.2 tls ;;
158 1.1.1.1.8.2 tls beta)
159 1.1.1.1.8.2 tls case "$betapoint::$rcpoint" in
160 1.1.1.1.8.2 tls [1-9]*::*)
161 1.1.1.1.8.2 tls bp=0
162 1.1.1.1.8.2 tls bbp=1
163 1.1.1.1.8.2 tls ;;
164 1.1.1.1.8.2 tls 0::) echo "betapoint is 0, rcpoint emtpy, and prerelease is beta."
165 1.1.1.1.8.2 tls echo "You probably intended prerelease= (that is, empty). It"
166 1.1.1.1.8.2 tls echo "will then be changed to beta by this script, starting the"
167 1.1.1.1.8.2 tls echo "first beta for the next point release."
168 1.1.1.1.8.2 tls exit 1
169 1.1.1.1.8.2 tls ;;
170 1.1.1.1.8.2 tls *)
171 1.1.1.1.8.2 tls bp=0
172 1.1.1.1.8.2 tls bbp=1
173 1.1.1.1.8.2 tls ;;
174 1.1.1.1.8.2 tls esac
175 1.1.1.1.8.2 tls case "$rcpoint" in
176 1.1.1.1.8.2 tls [Gg][Oo])
177 1.1.1.1.8.2 tls echo "prerelease is beta, rcpoint is GO, disallowed."
178 1.1.1.1.8.2 tls echo "rcpoint GO is allowed only when prerelease is RC or empty."
179 1.1.1.1.8.2 tls exit 1
180 1.1.1.1.8.2 tls ;;
181 1.1.1.1.8.2 tls esac
182 1.1.1.1.8.2 tls ;;
183 1.1.1.1.8.2 tls rc|RC)
184 1.1.1.1.8.2 tls case "$rcpoint" in
185 1.1.1.1.8.2 tls '')
186 1.1.1.1.8.2 tls case "$betapoint" in
187 1.1.1.1.8.2 tls 0) # bp=1
188 1.1.1.1.8.2 tls ;;
189 1.1.1.1.8.2 tls *) bp=0
190 1.1.1.1.8.2 tls ;;
191 1.1.1.1.8.2 tls esac
192 1.1.1.1.8.2 tls crcp=i
193 1.1.1.1.8.2 tls ;;
194 1.1.1.1.8.2 tls [1-9]*)
195 1.1.1.1.8.2 tls bp=0
196 1.1.1.1.8.2 tls crcp=i
197 1.1.1.1.8.2 tls ;;
198 1.1.1.1.8.2 tls [Gg][Oo])
199 1.1.1.1.8.2 tls bp=0
200 1.1.1.1.8.2 tls crcp=z
201 1.1.1.1.8.2 tls setpr=1
202 1.1.1.1.8.2 tls newpr=
203 1.1.1.1.8.2 tls ;;
204 1.1.1.1.8.2 tls *) echo "Unexpected value for 'rcpoint' <$rcpoint>!"
205 1.1.1.1.8.2 tls exit 1
206 1.1.1.1.8.2 tls ;;
207 1.1.1.1.8.2 tls esac
208 1.1.1.1.8.2 tls ;;
209 1.1.1.1.8.2 tls *)
210 1.1.1.1.8.2 tls echo "prerelease <$prerelease> unexpected"
211 1.1.1.1.8.2 tls exit 1
212 1.1.1.1.8.2 tls ;;
213 1.1.1.1.8.2 tls esac
214 1.1.1.1.8.2 tls ;;
215 1.1.1.1.8.2 tls *) echo "impossible: repo <$repo>!"
216 1.1.1.1.8.2 tls exit 1
217 1.1.1.1.8.2 tls ;;
218 1.1.1.1.8.2 tls esac
219 1.1.1.1.8.2 tls
220 1.1.1.1.8.2 tls case "$bp::$point" in
221 1.1.1.1.8.2 tls 0::*)
222 1.1.1.1.8.2 tls newpoint=$point
223 1.1.1.1.8.2 tls ;;
224 1.1.1.1.8.2 tls 1::[1-9]*)
225 1.1.1.1.8.2 tls newpoint=`expr $point + 1`
226 1.1.1.1.8.2 tls ;;
227 1.1.1.1.8.2 tls 1::)
228 1.1.1.1.8.2 tls newpoint=1
229 1.1.1.1.8.2 tls ;;
230 1.1.1.1.8.2 tls 1::[Nn][Ee][Ww])
231 1.1.1.1.8.2 tls newpoint=
232 1.1.1.1.8.2 tls ;;
233 1.1.1.1.8.2 tls *) echo "Unexpected value for 'point' <$point>!"
234 1.1.1.1.8.2 tls exit 1
235 1.1.1.1.8.2 tls ;;
236 1.1.1.1.8.2 tls esac
237 1.1.1.1.8.2 tls
238 1.1.1.1.8.2 tls case "$bbp::$betapoint" in
239 1.1.1.1.8.2 tls 0::*)
240 1.1.1.1.8.2 tls newbetapoint=$betapoint
241 1.1.1.1.8.2 tls ;;
242 1.1.1.1.8.2 tls 1::[0-9]*)
243 1.1.1.1.8.2 tls newbetapoint=`expr $betapoint + 1`
244 1.1.1.1.8.2 tls ;;
245 1.1.1.1.8.2 tls *) echo "Unexpected value for 'betapoint' <$betapoint>!"
246 1.1.1.1.8.2 tls exit 1
247 1.1.1.1.8.2 tls ;;
248 1.1.1.1.8.2 tls esac
249 1.1.1.1.8.2 tls
250 1.1.1.1.8.2 tls case "$crcp::$rcpoint" in
251 1.1.1.1.8.2 tls n::*)
252 1.1.1.1.8.2 tls newrcpoint=$rcpoint
253 1.1.1.1.8.2 tls ;;
254 1.1.1.1.8.2 tls i::)
255 1.1.1.1.8.2 tls newrcpoint=1
256 1.1.1.1.8.2 tls ;;
257 1.1.1.1.8.2 tls i::[0-9]*)
258 1.1.1.1.8.2 tls newrcpoint=`expr $rcpoint + 1`
259 1.1.1.1.8.2 tls ;;
260 1.1.1.1.8.2 tls z::*)
261 1.1.1.1.8.2 tls newrcpoint=
262 1.1.1.1.8.2 tls newbetapoint=0
263 1.1.1.1.8.2 tls ;;
264 1.1.1.1.8.2 tls *) echo "Unexpected value for 'crcp::rcpoint' <$crcp::$rcpoint>!"
265 1.1.1.1.8.2 tls exit 1
266 1.1.1.1.8.2 tls ;;
267 1.1.1.1.8.2 tls esac
268 1.1.1.1.8.2 tls
269 1.1.1.1.8.2 tls case "$setpr" in
270 1.1.1.1.8.2 tls 0)
271 1.1.1.1.8.2 tls newpr=$prerelease
272 1.1.1.1.8.2 tls esac
273 1.1.1.1.8.2 tls
274 1.1.1.1.8.2 tls # display results
275 1.1.1.1.8.2 tls printf "prerelease $prerelease"
276 1.1.1.1.8.2 tls case "$newpr" in
277 1.1.1.1.8.2 tls $prerelease)
278 1.1.1.1.8.2 tls printf "\n"
279 1.1.1.1.8.2 tls ;;
280 1.1.1.1.8.2 tls *) printf " -> $newpr\n"
281 1.1.1.1.8.2 tls ;;
282 1.1.1.1.8.2 tls esac
283 1.1.1.1.8.2 tls printf "point $point"
284 1.1.1.1.8.2 tls case "$newpoint" in
285 1.1.1.1.8.2 tls $point)
286 1.1.1.1.8.2 tls printf "\n"
287 1.1.1.1.8.2 tls ;;
288 1.1.1.1.8.2 tls *) printf " -> $newpoint\n"
289 1.1.1.1.8.2 tls ;;
290 1.1.1.1.8.2 tls esac
291 1.1.1.1.8.2 tls printf "betapoint $betapoint"
292 1.1.1.1.8.2 tls case "$newbetapoint" in
293 1.1.1.1.8.2 tls $betapoint)
294 1.1.1.1.8.2 tls printf "\n"
295 1.1.1.1.8.2 tls ;;
296 1.1.1.1.8.2 tls *) printf " -> $newbetapoint\n"
297 1.1.1.1.8.2 tls ;;
298 1.1.1.1.8.2 tls esac
299 1.1.1.1.8.2 tls printf "rcpoint $rcpoint"
300 1.1.1.1.8.2 tls case "$newrcpoint" in
301 1.1.1.1.8.2 tls $rcpoint)
302 1.1.1.1.8.2 tls printf "\n"
303 1.1.1.1.8.2 tls ;;
304 1.1.1.1.8.2 tls *) printf " -> $newrcpoint\n"
305 1.1.1.1.8.2 tls ;;
306 1.1.1.1.8.2 tls esac
307 1.1.1.1.8.2 tls
308 1.1.1.1.8.2 tls printf "Previous version: "
309 1.1.1.1.8.2 tls scripts/build/VersionName
310 1.1.1.1.8.2 tls
311 1.1.1.1.8.2 tls # apply packageinfo.sh changes
312 1.1.1.1.8.2 tls
313 1.1.1.1.8.2 tls sed -e "s/^point=.*/point=$newpoint/" \
314 1.1.1.1.8.2 tls -e "s/^betapoint=.*/betapoint=$newbetapoint/" \
315 1.1.1.1.8.2 tls -e "s/^rcpoint=.*/rcpoint=$newrcpoint/" \
316 1.1.1.1.8.2 tls -e "s/^prerelease=.*/prerelease=$newpr/" \
317 1.1.1.1.8.2 tls < packageinfo.sh \
318 1.1.1.1.8.2 tls > packageinfo.sh+
319 1.1.1.1.8.2 tls
320 1.1.1.1.8.2 tls case "$test" in
321 1.1.1.1.8.2 tls 0)
322 1.1.1.1.8.2 tls mv packageinfo.sh+ packageinfo.sh
323 1.1.1.1.8.2 tls printf "Updated version: "
324 1.1.1.1.8.2 tls scripts/build/VersionName
325 1.1.1.1.8.2 tls ;;
326 1.1.1.1.8.2 tls *)
327 1.1.1.1.8.2 tls printf "Next version would be: "
328 1.1.1.1.8.2 tls scripts/build/VersionName -p ./packageinfo.sh+
329 1.1.1.1.8.2 tls rm packageinfo.sh+
330 1.1.1.1.8.2 tls ;;
331 1.1.1.1.8.2 tls esac
332