From 1eda4e51c79d8b5fb89f9973fad339cfd6dee675 Mon Sep 17 00:00:00 2001 From: iamqiz <48077521+iamqiz@users.noreply.github.com> Date: Sun, 9 Oct 2022 10:05:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=A3=80=E6=9F=A5=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E7=89=88=E6=9C=AC=E5=8F=B7=E6=AF=94=E8=BE=83?= =?UTF-8?q?=20(#6091)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 检查更新时版本号比较 * 支持变长版本+beta --- kernel/model/updater.go | 43 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/kernel/model/updater.go b/kernel/model/updater.go index ade60fc42..daceeaeb9 100644 --- a/kernel/model/updater.go +++ b/kernel/model/updater.go @@ -26,6 +26,8 @@ import ( "path" "path/filepath" "runtime" + "strconv" + "strings" "sync" "time" @@ -214,6 +216,45 @@ func GetAnnouncements() (ret []*Announcement) { } return } +func ver2num(a string) int { + var version string + var suffixpos int + var suffixStr string + var suffix string + a = strings.Trim(a, " ") + if strings.Contains(a, "alpha") { + suffixpos = strings.Index(a, "-alpha") + version = a[0:suffixpos] + suffixStr = a[suffixpos+6 : len(a)] + suffix = "0" + fmt.Sprintf("%03s", suffixStr) + } else if strings.Contains(a, "beta") { + suffixpos = strings.Index(a, "-beta") + version = a[0:suffixpos] + suffixStr = a[suffixpos+5 : len(a)] + suffix = "1" + fmt.Sprintf("%03s", suffixStr) + } else { + version = a + suffix = "5000" + } + split := strings.Split(version, ".") + var verArr []string + + verArr = append(verArr, "1") + var tmp string + for i := 0; i < 3; i++ { + if i < len(split) { + tmp = split[i] + } else { + tmp = "0" + } + verArr = append(verArr, fmt.Sprintf("%04s", tmp)) + } + verArr = append(verArr, suffix) + + ver := strings.Join(verArr, "") + verNum, _ := strconv.Atoi(ver) + return verNum +} func CheckUpdate(showMsg bool) { if !showMsg { @@ -229,7 +270,7 @@ func CheckUpdate(showMsg bool) { release := result["release"].(string) var msg string var timeout int - if ver == util.Ver { + if ver2num(ver) <= ver2num(util.Ver) { msg = Conf.Language(10) timeout = 3000 } else {