feat: support auto check upgrade (#53)

This commit is contained in:
Li4n0
2022-01-09 23:51:46 +08:00
committed by GitHub
parent 30f9069e45
commit f6afe0fa12
16 changed files with 216 additions and 32 deletions
+1
View File
@@ -26,6 +26,7 @@ type Config struct {
AdminPathPrefix string `yaml:"admin_path_prefix"`
Database string
LogLevel string `yaml:"log_level"`
CheckUpgrade bool `yaml:"check_upgrade"`
IpLocationDatabase ipinfo.Config `yaml:"ip_location_database"`
Notice noticeConfig
HTTP rhttp.Config
+40
View File
@@ -12,6 +12,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/li4n0/revsuit/internal/recycler"
"github.com/li4n0/revsuit/internal/update"
log "unknwon.dev/clog/v2"
)
@@ -88,3 +89,42 @@ func version(c *gin.Context) {
"result": VERSION,
})
}
func (revsuit *Revsuit) getUpgrade(c *gin.Context) {
if !revsuit.config.CheckUpgrade {
c.JSON(200, gin.H{
"status": "succeed",
"error": nil,
"result": gin.H{
"upgradeable": false,
"message": "config of check upgrade is false",
},
})
return
}
if upgradeable, release, err := update.CheckUpgrade(VERSION); err == nil && upgradeable {
c.JSON(200, gin.H{
"status": "succeed",
"error": nil,
"result": gin.H{
"upgradeable": true,
"version": release.Version,
"release": release.URL,
},
})
} else {
message := VERSION + " is the latest"
if err != nil {
message = err.Error()
}
c.JSON(200, gin.H{
"status": "succeed",
"error": nil,
"result": gin.H{
"upgradeable": false,
"message": message,
},
})
}
}
+1
View File
@@ -48,6 +48,7 @@ func (revsuit *Revsuit) registerPlatformRouter() {
api.GET("/events", revsuit.events)
api.GET("/ping", ping)
api.GET("/version", version)
api.GET("/getUpgrade", revsuit.getUpgrade)
}
func (revsuit *Revsuit) registerHttpRouter() {