summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-02-23 20:38:30 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-02-23 20:45:29 -0800
commit069c36c95ca14ef1d4e8c14ea0a674546f1c03d5 (patch)
tree45d66c9d8533a1db32b5c6e8cc0ed0d810c7b923 /scripts
parent1be9467231b3f418d41595d23a549f8198a2ab9d (diff)
downloadsubsurface-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')
-rwxr-xr-xscripts/get-version31
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'