mirror of
https://github.com/Li4n0/revsuit.git
synced 2026-09-21 22:30:46 +08:00
feat: support auto check upgrade (#53)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user