From a0d2254545a9753e5d21fd94546b99f1a44c8c2c Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 11 May 2022 21:39:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0edge-admin=20[dev|prod]?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/edge-admin/main.go | 33 ++++++++++++++++++++++++++++++++- internal/apps/app_cmd.go | 10 ++++++---- internal/nodes/admin_node.go | 8 +++++++- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/cmd/edge-admin/main.go b/cmd/edge-admin/main.go index cdabc283..7b9f196c 100644 --- a/cmd/edge-admin/main.go +++ b/cmd/edge-admin/main.go @@ -18,14 +18,19 @@ func main() { Version(teaconst.Version). Product(teaconst.ProductName). Usage(teaconst.ProcessName+" [-v|start|stop|restart|service|daemon|reset|recover|demo]"). + Usage(teaconst.ProcessName+" [dev|prod]"). Option("-h", "show this help"). Option("-v", "show version"). Option("start", "start the service"). Option("stop", "stop the service"). + Option("restart", "restart the service"). Option("service", "register service into systemd"). Option("daemon", "start the service with daemon"). Option("reset", "reset configs"). - Option("recover", "enter recovery mode") + Option("recover", "enter recovery mode"). + Option("demo", "switch to demo mode"). + Option("dev", "switch to 'dev' mode"). + Option("prod", "switch to 'prod' mode") app.On("daemon", func() { nodes.NewAdminNode().Daemon() @@ -84,6 +89,32 @@ func main() { return } }) + app.On("dev", func() { + var env = "dev" + var sock = gosock.NewTmpSock(teaconst.ProcessName) + _, err := sock.Send(&gosock.Command{ + Code: env, + Params: nil, + }) + if err != nil { + fmt.Println("failed to switch to '" + env + "': " + err.Error()) + } else { + fmt.Println("switch to '" + env + "' ok") + } + }) + app.On("prod", func() { + var env = "prod" + var sock = gosock.NewTmpSock(teaconst.ProcessName) + _, err := sock.Send(&gosock.Command{ + Code: env, + Params: nil, + }) + if err != nil { + fmt.Println("failed to switch to '" + env + "': " + err.Error()) + } else { + fmt.Println("switch to '" + env + "' ok") + } + }) app.Run(func() { adminNode := nodes.NewAdminNode() adminNode.Run() diff --git a/internal/apps/app_cmd.go b/internal/apps/app_cmd.go index 96764002..a7df037a 100644 --- a/internal/apps/app_cmd.go +++ b/internal/apps/app_cmd.go @@ -18,7 +18,7 @@ import ( type AppCmd struct { product string version string - usage string + usages []string options []*CommandHelpOption appendStrings []string @@ -52,7 +52,7 @@ func (this *AppCmd) Version(version string) *AppCmd { // Usage 使用方法 func (this *AppCmd) Usage(usage string) *AppCmd { - this.usage = usage + this.usages = append(this.usages, usage) return this } @@ -75,8 +75,10 @@ func (this *AppCmd) Append(appendString string) *AppCmd { func (this *AppCmd) Print() { fmt.Println(this.product + " v" + this.version) - usage := this.usage - fmt.Println("Usage:", "\n "+usage) + fmt.Println("Usage:") + for _, usage := range this.usages { + fmt.Println(" " + usage) + } if len(this.options) > 0 { fmt.Println("") diff --git a/internal/nodes/admin_node.go b/internal/nodes/admin_node.go index 15f4f26b..13023045 100644 --- a/internal/nodes/admin_node.go +++ b/internal/nodes/admin_node.go @@ -41,7 +41,7 @@ func (this *AdminNode) Run() { SharedAdminNode = this // 启动管理界面 - secret := this.genSecret() + var secret = this.genSecret() configs.Secret = secret // 本地Sock @@ -382,6 +382,12 @@ func (this *AdminNode) listenSock() error { "path": exePath, }, }) + case "dev": // 切换到dev + Tea.Env = Tea.EnvDev + _ = cmd.ReplyOk() + case "prod": // 切换到prod + Tea.Env = Tea.EnvProd + _ = cmd.ReplyOk() } })