45 lines
994 B
Go
45 lines
994 B
Go
package build
|
|
|
|
import "fmt"
|
|
|
|
var CurrentCommit string
|
|
|
|
// BuildVersion is the local build version, set by build system
|
|
const BuildVersion = "0.2.0"
|
|
|
|
var UserVersion = BuildVersion + CurrentCommit
|
|
|
|
type Version uint32
|
|
|
|
func newVer(major, minor, patch uint8) Version {
|
|
return Version(uint32(major)<<16 | uint32(minor)<<8 | uint32(patch))
|
|
}
|
|
|
|
// Ints returns (major, minor, patch) versions
|
|
func (ve Version) Ints() (uint32, uint32, uint32) {
|
|
v := uint32(ve)
|
|
return (v & majorOnlyMask) >> 16, (v & minorOnlyMask) >> 8, v & patchOnlyMask
|
|
}
|
|
|
|
func (ve Version) String() string {
|
|
vmj, vmi, vp := ve.Ints()
|
|
return fmt.Sprintf("%d.%d.%d", vmj, vmi, vp)
|
|
}
|
|
|
|
func (ve Version) EqMajorMinor(v2 Version) bool {
|
|
return ve&minorMask == v2&minorMask
|
|
}
|
|
|
|
// APIVersion is a semver version of the rpc api exposed
|
|
var APIVersion Version = newVer(0, 1, 5)
|
|
|
|
const (
|
|
majorMask = 0xff0000
|
|
minorMask = 0xffff00
|
|
patchMask = 0xffffff
|
|
|
|
majorOnlyMask = 0xff0000
|
|
minorOnlyMask = 0x00ff00
|
|
patchOnlyMask = 0x0000ff
|
|
)
|