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)
|
logger.SugaredLogger.Infof("releaseVersion:%+v", releaseVersion.TagName)
|
||||||
if releaseVersion.TagName != Version {
|
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{}
|
tag := &models.Tag{}
|
||||||
_, err = resty.New().R().
|
_, err = resty.New().R().
|
||||||
@ -141,6 +135,12 @@ func (a *App) CheckUpdate() {
|
|||||||
return
|
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)
|
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)
|
resp, err := resty.New().R().Get(downloadUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -153,16 +153,17 @@ func (a *App) CheckUpdate() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
body := resp.Body()
|
body := resp.Body()
|
||||||
// 验证下载文件的哈希值
|
|
||||||
//hash := sha256.Sum256(body)
|
if len(body) < 1024 {
|
||||||
//actualSHA256 := hex.EncodeToString(hash[:])
|
go runtime.EventsEmit(a.ctx, "newsPush", map[string]any{
|
||||||
//logger.SugaredLogger.Infof("actualSHA256: %s", actualSHA256)
|
"time": "新版本:" + releaseVersion.TagName,
|
||||||
//if actualSHA256 != releaseVersion.Commit.Sha {
|
"isRed": true,
|
||||||
// logger.SugaredLogger.Errorf("下载文件sha256校验失败")
|
"source": "go-stock",
|
||||||
// logger.SugaredLogger.Errorf("actualSHA256: %s Commit-Sha:%s", actualSHA256, releaseVersion.Commit.Sha)
|
"content": "新版本下载失败,请前往 https://github.com/ArvinLovegood/go-stock/releases 手动下载替换文件。",
|
||||||
// return
|
})
|
||||||
//}
|
return
|
||||||
// 使用go-update库进行更新
|
}
|
||||||
|
|
||||||
err = update.Apply(bytes.NewReader(body), update.Options{})
|
err = update.Apply(bytes.NewReader(body), update.Options{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.SugaredLogger.Error("更新失败: ", err.Error())
|
logger.SugaredLogger.Error("更新失败: ", err.Error())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user