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