diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-02-23 20:38:30 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-02-23 20:45:29 -0800 |
commit | 069c36c95ca14ef1d4e8c14ea0a674546f1c03d5 (patch) | |
tree | 45d66c9d8533a1db32b5c6e8cc0ed0d810c7b923 /scripts/get-version | |
parent | 1be9467231b3f418d41595d23a549f8198a2ab9d (diff) | |
download | subsurface-069c36c95ca14ef1d4e8c14ea0a674546f1c03d5.tar.gz |
Expand the version magic even more
Someone who is better at shell script writing needs to review this.
Here's what it's supposed to do. Create version strings with three or four
values for darwin or win, respectively, that we can use as the versions of
the bundle or installer. The version that Subsurface reports isn't
affected by this. So in a way this is automating something that's mostly
cosmetic.
If we have a 2 digit version number (like 3.0), do the same the old script
did - add just zeroes if we are on a tag, otherwise add the number of
commits since the tag (and a last 0 if on win).
If we have a 3 digit version numner (like 3.0.1), leave it alone on mac
and add either the number of commits since the tag or a zero if we are on
the tag on win.
Now this can create the same version number for two different versions on
darwin: the first commit after 3.0 and the version tagged as 3.0.1 will
both get the same number. That's kinda silly but remember - the non-tagged
versions aren't supposed to be widely distributed (and the third digit in
them should be much larger than anything we'd ever release; we are
already on commit 16 since the last tag and hopefully will never release a
3.0.16 as tagged release). And of course the full version as displayed in
the About box is always able to tell things apart because of the SHA added
at the end if it's a non-tagged version.
So why all this magic? The reason we do this is so that during development
we are able to create Mac and Windows installers and they get reasonable
version numbers, based on the versioning that these vendors suppose. And
without manual intervention.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'scripts/get-version')
-rwxr-xr-x | scripts/get-version | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/scripts/get-version b/scripts/get-version index c59e2000b..4da018568 100755 --- a/scripts/get-version +++ b/scripts/get-version @@ -30,24 +30,27 @@ case $os in v=$v0 ;; darwin|win) + # just the dots in the version string - this way we can + # count them + dots="${v0//[^.]}" # split version string using a '-' separator IFS='-' set -- $v0 - v1=$1 - if [ $# -gt 1 ]; then - v1=$v1.$2 - else - v1=$v1.0 + v=$1 + # do we need to add another digit? + # We know there are 1 or 2 dots in $v, so if it's just one + # or we are trying to get to 4, add one digit + if [ ${#dots} -eq 1 ] || [ $os == "win" ]; then + if [ $# -gt 1 ]; then + v=$v.$2 + else + v=$v.0 + fi + fi + # and if it was just one dot and we want 4, at another 0 + if [ ${#dots} -eq 1 ] && [ $os == "win" ]; then + v=$v.0 fi - case $os in - darwin) - v=$v1 - ;; - win) - # always add '0' as the 4:th digit - v=$v1.0 - ;; - esac ;; *) v='git.missing.please.hardcode.version' |