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 (
 | 
					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() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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" {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user