Makefile,mkversion.sh: set tailscale versions at build time
While here, set the gradle versionName from the Makefile as well. Updates tailscale/tailscale#486 Signed-off-by: Elias Naur <mail@eliasnaur.com>pull/3/head
parent
f88e8f6f8c
commit
d56193f90c
@ -0,0 +1,97 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style
|
||||
# license that can be found in the LICENSE file.
|
||||
|
||||
set -eu
|
||||
|
||||
mode=$1
|
||||
describe=$2
|
||||
|
||||
long() {
|
||||
ver="${describe#v}"
|
||||
stem="${ver%%-*}"
|
||||
case "$stem" in
|
||||
*.*.*)
|
||||
# Full SemVer, nothing to do.
|
||||
semver="${stem}"
|
||||
;;
|
||||
*.*)
|
||||
# Old style major.minor, add a .0
|
||||
semver="${stem}.0"
|
||||
;;
|
||||
*)
|
||||
echo "Unparseable version $stem" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
suffix="${ver#$stem}"
|
||||
case "$suffix" in
|
||||
-*-*)
|
||||
# Has a change count in addition to the commit hash.
|
||||
;;
|
||||
-*)
|
||||
# Missing change count, add one.
|
||||
suffix="-0${suffix}"
|
||||
;;
|
||||
*)
|
||||
echo "Unexpected version suffix" >&2
|
||||
exit 1
|
||||
esac
|
||||
echo "${semver}${suffix}"
|
||||
}
|
||||
|
||||
short() {
|
||||
ver="$(long)"
|
||||
case "$ver" in
|
||||
*-*-*)
|
||||
echo "${ver%-*}"
|
||||
;;
|
||||
*-*)
|
||||
echo "$ver"
|
||||
;;
|
||||
*)
|
||||
echo "Long version in invalid format" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
xcode() {
|
||||
ver=$(short | sed -e 's/-/./')
|
||||
major=$(echo "$ver" | cut -f1 -d.)
|
||||
minor=$(echo "$ver" | cut -f2 -d.)
|
||||
patch=$(echo "$ver" | cut -f3 -d.)
|
||||
changecount=$(echo "$ver" | cut -f4 -d.)
|
||||
|
||||
# Apple version numbers must be major.minor.patch. We have 4 fields
|
||||
# because we need major.minor.patch for go module compatibility, and
|
||||
# changecount for automatic version numbering of unstable builds. To
|
||||
# resolve this, for Apple builds, we combine changecount into patch:
|
||||
patch=$((patch*10000 + changecount))
|
||||
|
||||
# CFBundleShortVersionString: the "short name" used in the App Store.
|
||||
# eg. 0.92.98
|
||||
echo "VERSION_NAME = $major.$minor.$patch"
|
||||
# CFBundleVersion: the build number. Needs to be 3 numeric sections
|
||||
# that increment for each release according to SemVer rules.
|
||||
#
|
||||
# We start counting at 100 because we submitted using raw build
|
||||
# numbers before, and Apple doesn't let you start over.
|
||||
# e.g. 0.98.3-123 -> 100.98.3123
|
||||
major=$((major + 100))
|
||||
echo "VERSION_ID = $major.$minor.$patch"
|
||||
}
|
||||
|
||||
case "$mode" in
|
||||
long)
|
||||
long
|
||||
;;
|
||||
short)
|
||||
short
|
||||
;;
|
||||
xcode)
|
||||
xcode
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue