|
|
|
@ -1,8 +1,12 @@
|
|
|
|
|
package bootstrap
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/json"
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/HFO4/cloudreve/pkg/conf"
|
|
|
|
|
"github.com/HFO4/cloudreve/pkg/request"
|
|
|
|
|
"github.com/HFO4/cloudreve/pkg/util"
|
|
|
|
|
"github.com/hashicorp/go-version"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// InitApplication 初始化应用常量
|
|
|
|
@ -18,4 +22,34 @@ func InitApplication() {
|
|
|
|
|
================================================
|
|
|
|
|
|
|
|
|
|
`)
|
|
|
|
|
go CheckUpdate()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type GitHubRelease struct {
|
|
|
|
|
URL string `json:"html_url"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Tag string `json:"tag_name"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// CheckUpdate 检查更新
|
|
|
|
|
func CheckUpdate() {
|
|
|
|
|
client := request.HTTPClient{}
|
|
|
|
|
res, err := client.Request("GET", "https://api.github.com/repos/cloudreve/cloudreve/releases", nil).GetResponse()
|
|
|
|
|
if err != nil {
|
|
|
|
|
util.Log().Warning("更新检查失败, %s", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var list []GitHubRelease
|
|
|
|
|
if err := json.Unmarshal([]byte(res), &list); err != nil {
|
|
|
|
|
util.Log().Warning("更新检查失败, %s", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(list) > 0 {
|
|
|
|
|
present, err1 := version.NewVersion(conf.BackendVersion)
|
|
|
|
|
latest, err2 := version.NewVersion(list[0].Tag)
|
|
|
|
|
if err1 == nil && err2 == nil && latest.GreaterThan(present) {
|
|
|
|
|
util.Log().Info("有新的版本 [%s] 可用,下载:%s", list[0].Name, list[0].URL)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|