diff options
Diffstat (limited to 'model/version.go')
-rw-r--r-- | model/version.go | 69 |
1 files changed, 45 insertions, 24 deletions
diff --git a/model/version.go b/model/version.go index 4a642d017..a5227f328 100644 --- a/model/version.go +++ b/model/version.go @@ -4,6 +4,7 @@ package model import ( + "fmt" "strconv" "strings" ) @@ -25,10 +26,27 @@ var versions = []string{ } var CurrentVersion string = versions[0] -var BuildNumber = "dev" -var BuildDate = "Fri Jan 8 14:19:26 UTC 2016" -var BuildHash = "001a4448ca5fb0018eeb442915b473b121c04bf3" -var BuildEnterpriseReady = "false" + +var BuildNumber = "_BUILD_NUMBER_" +var BuildDate = "_BUILD_DATE_" +var BuildHash = "_BUILD_HASH_" +var BuildEnterpriseReady = "_BUILD_ENTERPRISE_READY_" +var versionsWithoutHotFixes []string + +func init() { + versionsWithoutHotFixes = make([]string, 0, len(versions)) + seen := make(map[string]string) + + for _, version := range versions { + maj, min, _ := SplitVersion(version) + verStr := fmt.Sprintf("%v.%v.0", maj, min) + + if seen[verStr] == "" { + versionsWithoutHotFixes = append(versionsWithoutHotFixes, verStr) + seen[verStr] = verStr + } + } +} func SplitVersion(version string) (int64, int64, int64) { parts := strings.Split(version, ".") @@ -52,25 +70,17 @@ func SplitVersion(version string) (int64, int64, int64) { return major, minor, patch } -func GetPreviousVersion(currentVersion string) (int64, int64) { - currentIndex := -1 - currentMajor, currentMinor, _ := SplitVersion(currentVersion) - - for index, version := range versions { - major, minor, _ := SplitVersion(version) - - if currentMajor == major && currentMinor == minor { - currentIndex = index - } +func GetPreviousVersion(version string) string { + verMajor, verMinor, _ := SplitVersion(version) + verStr := fmt.Sprintf("%v.%v.0", verMajor, verMinor) - if currentIndex >= 0 { - if currentMajor != major || currentMinor != minor { - return major, minor - } + for index, v := range versionsWithoutHotFixes { + if v == verStr && len(versionsWithoutHotFixes) > index+1 { + return versionsWithoutHotFixes[index+1] } } - return 0, 0 + return "" } func IsOfficalBuild() bool { @@ -88,13 +98,24 @@ func IsCurrentVersion(versionToCheck string) bool { } } -func IsPreviousVersion(versionToCheck string) bool { +func IsPreviousVersionsSupported(versionToCheck string) bool { toCheckMajor, toCheckMinor, _ := SplitVersion(versionToCheck) - prevMajor, prevMinor := GetPreviousVersion(CurrentVersion) + versionToCheckStr := fmt.Sprintf("%v.%v.0", toCheckMajor, toCheckMinor) - if toCheckMajor == prevMajor && toCheckMinor == prevMinor { + // Current Supported + if versionsWithoutHotFixes[0] == versionToCheckStr { + return true + } + + // Current - 1 Supported + if versionsWithoutHotFixes[1] == versionToCheckStr { return true - } else { - return false } + + // Current - 2 Supported + if versionsWithoutHotFixes[2] == versionToCheckStr { + return true + } + + return false } |