使用edge-admin upgrade升级时可以通过--url参数指定升级包URL

This commit is contained in:
GoEdgeLab
2023-03-05 19:52:48 +08:00
parent f56703145f
commit 53dfa3b50f
2 changed files with 16 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ package main
import ( import (
"bytes" "bytes"
"flag"
"fmt" "fmt"
"github.com/TeaOSLab/EdgeAdmin/internal/apps" "github.com/TeaOSLab/EdgeAdmin/internal/apps"
"github.com/TeaOSLab/EdgeAdmin/internal/configs" "github.com/TeaOSLab/EdgeAdmin/internal/configs"
@@ -24,7 +25,7 @@ func main() {
var app = apps.NewAppCmd(). var app = apps.NewAppCmd().
Version(teaconst.Version). Version(teaconst.Version).
Product(teaconst.ProductName). Product(teaconst.ProductName).
Usage(teaconst.ProcessName+" [-v|start|stop|restart|service|daemon|reset|recover|demo|upgrade]"). Usage(teaconst.ProcessName+" [-h|-v|start|stop|restart|service|daemon|reset|recover|demo|upgrade]").
Usage(teaconst.ProcessName+" [dev|prod]"). Usage(teaconst.ProcessName+" [dev|prod]").
Option("-h", "show this help"). Option("-h", "show this help").
Option("-v", "show version"). Option("-v", "show version").
@@ -38,7 +39,7 @@ func main() {
Option("demo", "switch to demo mode"). Option("demo", "switch to demo mode").
Option("dev", "switch to 'dev' mode"). Option("dev", "switch to 'dev' mode").
Option("prod", "switch to 'prod' mode"). Option("prod", "switch to 'prod' mode").
Option("upgrade", "upgrade from official site") Option("upgrade [--url=URL]", "upgrade from official site or an url")
app.On("daemon", func() { app.On("daemon", func() {
nodes.NewAdminNode().Daemon() nodes.NewAdminNode().Daemon()
@@ -138,7 +139,12 @@ func main() {
} }
}) })
app.On("upgrade", func() { app.On("upgrade", func() {
var manager = utils.NewUpgradeManager("admin") var downloadURL = ""
var flagSet = flag.NewFlagSet("", flag.ContinueOnError)
flagSet.StringVar(&downloadURL, "url", "", "new version download url")
_ = flagSet.Parse(os.Args[2:])
var manager = utils.NewUpgradeManager("admin", downloadURL)
log.Println("checking latest version ...") log.Println("checking latest version ...")
var ticker = time.NewTicker(1 * time.Second) var ticker = time.NewTicker(1 * time.Second)
go func() { go func() {

View File

@@ -52,11 +52,14 @@ type UpgradeManager struct {
writer *UpgradeFileWriter writer *UpgradeFileWriter
body io.ReadCloser body io.ReadCloser
isCancelled bool isCancelled bool
downloadURL string
} }
func NewUpgradeManager(component string) *UpgradeManager { func NewUpgradeManager(component string, downloadURL string) *UpgradeManager {
return &UpgradeManager{ return &UpgradeManager{
component: component, component: component,
downloadURL: downloadURL,
client: &http.Client{ client: &http.Client{
Transport: &http.Transport{ Transport: &http.Transport{
TLSClientConfig: &tls.Config{ TLSClientConfig: &tls.Config{
@@ -96,8 +99,8 @@ func (this *UpgradeManager) Start() error {
} }
// 检查新版本 // 检查新版本
var downloadURL = "" var downloadURL = this.downloadURL
{ if len(downloadURL) == 0 {
var url = teaconst.UpdatesURL var url = teaconst.UpdatesURL
var osName = runtime.GOOS var osName = runtime.GOOS
if Tea.IsTesting() && osName == "darwin" { if Tea.IsTesting() && osName == "darwin" {