From 7d57145bb2fa884aa4ccc9b07b637cf95e68512c Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 9 Feb 2022 18:06:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/root.go | 2 ++ cmd/start.go | 17 +++++++++++++++-- config/types.go | 16 ++++++++-------- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index cb581e0e..b11966dc 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -24,6 +24,8 @@ var langs = map[string]string{ "Update database schema": "更新数据库结构", "Execute process": "更新数据库结构", "Show version": "显示当前版本号", + "Development mode": "使用开发模式启动", + "Enabled unstable features": "启用内测功能", } // L 多语言切换 diff --git a/cmd/start.go b/cmd/start.go index 8ab32d3d..be1fdb5a 100644 --- a/cmd/start.go +++ b/cmd/start.go @@ -15,6 +15,9 @@ import ( "github.com/yaoapp/yao/share" ) +var startDebug = false +var startAlpha = false + var startCmd = &cobra.Command{ Use: "start", Short: L("Start Engine"), @@ -22,6 +25,11 @@ var startCmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { defer service.Stop(func() { fmt.Println("服务已关闭") }) Boot() + + if startDebug { // 强制 debug 模式启动 + config.Development() + } + mode := config.Conf.Mode if mode == "debug" { mode = color.RedString("调试模式\n") @@ -78,8 +86,8 @@ var startCmd = &cobra.Command{ service.Watch(config.Conf) } - if len(args) > 0 && args[0] == "alpha" { - // 启动 Socket 服务 (alpha) + // 启用内测功能 + if startAlpha { for _, srv := range gou.Servers { fmt.Printf(color.GreenString("%s服务", srv.Name)) fmt.Printf(color.WhiteString("\n---------------------------------")) @@ -103,3 +111,8 @@ func colorMehtod(method string) string { return color.WhiteString(method) } } + +func init() { + startCmd.PersistentFlags().BoolVarP(&startDebug, "debug", "", false, L("Development mode")) + startCmd.PersistentFlags().BoolVarP(&startAlpha, "alpha", "", false, L("Enabled unstable features")) +} diff --git a/config/types.go b/config/types.go index 3372f4b3..33d6f6f0 100644 --- a/config/types.go +++ b/config/types.go @@ -2,14 +2,14 @@ package config // Config 象传应用引擎配置 type Config struct { - Mode string `json:"mode,omitempty" env:"YAO_ENV" envDefault:"production"` // 象传引擎启动模式 production/development - Root string `json:"root,omitempty" env:"YAO_ROOT" envDefault:"."` // 应用根目录 - Host string `json:"host,omitempty" env:"YAO_HOST" envDefault:"0.0.0.0"` // 服务监听地址 - Port int `json:"port,omitempty" env:"YAO_PORT" envDefault:"5099"` // 服务监听端口 - Cert string `json:"cert,omitempty" env:"YAO_CERT"` // HTTPS 证书文件地址 - Key string `json:"key,omitempty" env:"YAO_KEY"` // HTTPS 证书密钥地址 - Log string `json:"log,omitempty" env:"YAO_LOG" envDefault:"./logs/application.log"` // 服务日志地址 - LogMode string `json:"log_mode,omitempty" env:"YAO_LOG_MODE" envDefault:"JSON"` // 服务日志模式 JSON|TEXT + Mode string `json:"mode,omitempty" env:"YAO_ENV" envDefault:"production"` // 象传引擎启动模式 production/development + Root string `json:"root,omitempty" env:"YAO_ROOT" envDefault:"."` // 应用根目录 + Host string `json:"host,omitempty" env:"YAO_HOST" envDefault:"0.0.0.0"` // 服务监听地址 + Port int `json:"port,omitempty" env:"YAO_PORT" envDefault:"5099"` // 服务监听端口 + Cert string `json:"cert,omitempty" env:"YAO_CERT"` // HTTPS 证书文件地址 + Key string `json:"key,omitempty" env:"YAO_KEY"` // HTTPS 证书密钥地址 + Log string `json:"log,omitempty" env:"YAO_LOG"` // 服务日志地址 + LogMode string `json:"log_mode,omitempty" env:"YAO_LOG_MODE" envDefault:"TEXT"` // 服务日志模式 JSON|TEXT // Session string `json:"session,omitempty" env:"YAO_SESSION" envDefault:"memory"` // 用户会话模式 memory|redis|database JWTSecret string `json:"jwt_secret,omitempty" env:"YAO_JWT_SECRET"` // JWT 密钥 DB DBConfig `json:"db,omitempty"` // 数据库配置