mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-07 15:20: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