Home | History | Annotate | Line # | Download | only in build
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