Files
threshold/version/version.go
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

78 lines
1.7 KiB
Go
Raw Normal View History

2020-02-12 13:53:27 -05:00
package version
import (
"bytes"
"fmt"
)
2023-01-04 11:24:09 -05:00
const BoundaryPrefix = "Boundary v"
2020-03-10 15:48:04 -04:00
// Info
type Info struct {
2020-10-09 19:35:04 -04:00
Revision string `json:"revision,omitempty"`
Version string `json:"version,omitempty"`
VersionPrerelease string `json:"version_prerelease,omitempty"`
VersionMetadata string `json:"version_metadata,omitempty"`
CgoEnabled bool `json:"cgo_enabled,omitempty"`
2020-02-12 13:53:27 -05:00
}
2020-03-10 15:48:04 -04:00
func Get() *Info {
2020-02-12 13:53:27 -05:00
ver := Version
rel := VersionPrerelease
md := VersionMetadata
if GitDescribe != "" {
ver = GitDescribe
}
if GitDescribe == "" && rel == "" && VersionPrerelease != "" {
rel = "dev"
}
2020-03-10 15:48:04 -04:00
return &Info{
2020-10-09 19:35:04 -04:00
CgoEnabled: CgoEnabled,
2020-02-12 13:53:27 -05:00
Revision: GitCommit,
Version: ver,
VersionPrerelease: rel,
VersionMetadata: md,
}
}
2020-03-10 15:48:04 -04:00
func (c *Info) VersionNumber() string {
2020-02-12 13:53:27 -05:00
if Version == "unknown" && VersionPrerelease == "unknown" {
return "(version unknown)"
}
2020-10-09 19:35:04 -04:00
version := c.Version
2020-02-12 13:53:27 -05:00
if c.VersionPrerelease != "" {
version = fmt.Sprintf("%s-%s", version, c.VersionPrerelease)
}
if c.VersionMetadata != "" {
version = fmt.Sprintf("%s+%s", version, c.VersionMetadata)
}
return version
}
2020-03-10 15:48:04 -04:00
func (c *Info) FullVersionNumber(rev bool) string {
2020-02-12 13:53:27 -05:00
var versionString bytes.Buffer
if Version == "unknown" && VersionPrerelease == "unknown" {
2020-08-10 17:15:02 -04:00
return "Boundary (version unknown)"
2020-02-12 13:53:27 -05:00
}
2023-01-04 11:24:09 -05:00
fmt.Fprintf(&versionString, "%s%s", BoundaryPrefix, c.Version)
2020-02-12 13:53:27 -05:00
if c.VersionPrerelease != "" {
fmt.Fprintf(&versionString, "-%s", c.VersionPrerelease)
}
if c.VersionMetadata != "" {
fmt.Fprintf(&versionString, "+%s", c.VersionMetadata)
}
if rev && c.Revision != "" {
fmt.Fprintf(&versionString, " (%s)", c.Revision)
}
return versionString.String()
}