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