build/version: expose AppMajor, AppMinor, AppPatch, etc.

This commit is contained in:
Conner Fromknecht 2020-04-09 17:03:57 -07:00
parent 06bd645e5d
commit 640aadb61a
No known key found for this signature in database
GPG Key ID: E7D737B67FA592C7

@ -22,26 +22,31 @@ const semanticAlphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr
// These constants define the application version and follow the semantic // These constants define the application version and follow the semantic
// versioning 2.0.0 spec (http://semver.org/). // versioning 2.0.0 spec (http://semver.org/).
const ( const (
appMajor uint = 0 // AppMajor defines the major version of this binary.
appMinor uint = 9 AppMajor uint = 0
appPatch uint = 0
// appPreRelease MUST only contain characters from semanticAlphabet // AppMinor defines the minor version of this binary.
AppMinor uint = 9
// AppPatch defines the application patch for this binary.
AppPatch uint = 0
// AppPreRelease MUST only contain characters from semanticAlphabet
// per the semantic versioning spec. // per the semantic versioning spec.
appPreRelease = "beta" AppPreRelease = "beta"
) )
// Version returns the application version as a properly formed string per the // Version returns the application version as a properly formed string per the
// semantic versioning 2.0.0 spec (http://semver.org/). // semantic versioning 2.0.0 spec (http://semver.org/).
func Version() string { func Version() string {
// Start with the major, minor, and patch versions. // Start with the major, minor, and patch versions.
version := fmt.Sprintf("%d.%d.%d", appMajor, appMinor, appPatch) version := fmt.Sprintf("%d.%d.%d", AppMajor, AppMinor, AppPatch)
// Append pre-release version if there is one. The hyphen called for // Append pre-release version if there is one. The hyphen called for
// by the semantic versioning spec is automatically appended and should // by the semantic versioning spec is automatically appended and should
// not be contained in the pre-release string. The pre-release version // not be contained in the pre-release string. The pre-release version
// is not appended if it contains invalid characters. // is not appended if it contains invalid characters.
preRelease := normalizeVerString(appPreRelease) preRelease := normalizeVerString(AppPreRelease)
if preRelease != "" { if preRelease != "" {
version = fmt.Sprintf("%s-%s", version, preRelease) version = fmt.Sprintf("%s-%s", version, preRelease)
} }