mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
feat(update):优化软件更新逻辑
- 增加对操作系统类型的判断,非 Windows 系统不执行更新 - 优化更新版本信息的传递方式 -重构代码,提高可读性和可维护性
This commit is contained in:
parent
c2f260c613
commit
7ea160b6b5
33
app.go
33
app.go
@ -113,12 +113,6 @@ func (a *App) CheckUpdate() {
|
||||
}
|
||||
logger.SugaredLogger.Infof("releaseVersion:%+v", releaseVersion.TagName)
|
||||
if releaseVersion.TagName != Version {
|
||||
go runtime.EventsEmit(a.ctx, "newsPush", map[string]any{
|
||||
"time": "发现新版本:" + releaseVersion.TagName,
|
||||
"isRed": false,
|
||||
"source": "go-stock",
|
||||
"content": fmt.Sprintf("当前版本:%s, 最新版本:%s,开始下载...", Version, releaseVersion.TagName),
|
||||
})
|
||||
|
||||
tag := &models.Tag{}
|
||||
_, err = resty.New().R().
|
||||
@ -141,6 +135,12 @@ func (a *App) CheckUpdate() {
|
||||
return
|
||||
}
|
||||
|
||||
go runtime.EventsEmit(a.ctx, "newsPush", map[string]any{
|
||||
"time": "发现新版本:" + releaseVersion.TagName,
|
||||
"isRed": false,
|
||||
"source": "go-stock",
|
||||
"content": fmt.Sprintf("当前版本:%s, 最新版本:%s,开始下载...", Version, releaseVersion.TagName),
|
||||
})
|
||||
downloadUrl := fmt.Sprintf("https://github.com/ArvinLovegood/go-stock/releases/download/%s/go-stock-windows-amd64.exe", releaseVersion.TagName)
|
||||
resp, err := resty.New().R().Get(downloadUrl)
|
||||
if err != nil {
|
||||
@ -153,16 +153,17 @@ func (a *App) CheckUpdate() {
|
||||
return
|
||||
}
|
||||
body := resp.Body()
|
||||
// 验证下载文件的哈希值
|
||||
//hash := sha256.Sum256(body)
|
||||
//actualSHA256 := hex.EncodeToString(hash[:])
|
||||
//logger.SugaredLogger.Infof("actualSHA256: %s", actualSHA256)
|
||||
//if actualSHA256 != releaseVersion.Commit.Sha {
|
||||
// logger.SugaredLogger.Errorf("下载文件sha256校验失败")
|
||||
// logger.SugaredLogger.Errorf("actualSHA256: %s Commit-Sha:%s", actualSHA256, releaseVersion.Commit.Sha)
|
||||
// return
|
||||
//}
|
||||
// 使用go-update库进行更新
|
||||
|
||||
if len(body) < 1024 {
|
||||
go runtime.EventsEmit(a.ctx, "newsPush", map[string]any{
|
||||
"time": "新版本:" + releaseVersion.TagName,
|
||||
"isRed": true,
|
||||
"source": "go-stock",
|
||||
"content": "新版本下载失败,请前往 https://github.com/ArvinLovegood/go-stock/releases 手动下载替换文件。",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
err = update.Apply(bytes.NewReader(body), update.Options{})
|
||||
if err != nil {
|
||||
logger.SugaredLogger.Error("更新失败: ", err.Error())
|
||||
|
Loading…
x
Reference in New Issue
Block a user