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