mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	使用edge-admin upgrade升级时可以通过--url参数指定升级包URL
This commit is contained in:
		@@ -2,6 +2,7 @@ package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"flag"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/apps"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/configs"
 | 
			
		||||
@@ -24,7 +25,7 @@ func main() {
 | 
			
		||||
	var app = apps.NewAppCmd().
 | 
			
		||||
		Version(teaconst.Version).
 | 
			
		||||
		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]").
 | 
			
		||||
		Option("-h", "show this help").
 | 
			
		||||
		Option("-v", "show version").
 | 
			
		||||
@@ -38,7 +39,7 @@ func main() {
 | 
			
		||||
		Option("demo", "switch to demo mode").
 | 
			
		||||
		Option("dev", "switch to 'dev' 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() {
 | 
			
		||||
		nodes.NewAdminNode().Daemon()
 | 
			
		||||
@@ -138,7 +139,12 @@ func main() {
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
	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 ...")
 | 
			
		||||
		var ticker = time.NewTicker(1 * time.Second)
 | 
			
		||||
		go func() {
 | 
			
		||||
 
 | 
			
		||||
@@ -52,11 +52,14 @@ type UpgradeManager struct {
 | 
			
		||||
	writer        *UpgradeFileWriter
 | 
			
		||||
	body          io.ReadCloser
 | 
			
		||||
	isCancelled   bool
 | 
			
		||||
 | 
			
		||||
	downloadURL string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewUpgradeManager(component string) *UpgradeManager {
 | 
			
		||||
func NewUpgradeManager(component string, downloadURL string) *UpgradeManager {
 | 
			
		||||
	return &UpgradeManager{
 | 
			
		||||
		component: component,
 | 
			
		||||
		component:   component,
 | 
			
		||||
		downloadURL: downloadURL,
 | 
			
		||||
		client: &http.Client{
 | 
			
		||||
			Transport: &http.Transport{
 | 
			
		||||
				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 osName = runtime.GOOS
 | 
			
		||||
		if Tea.IsTesting() && osName == "darwin" {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user