From dbb41fa430c12c90c542930fdd62aa77be255115 Mon Sep 17 00:00:00 2001 From: qiantao Date: Fri, 24 Jul 2020 15:54:52 +0800 Subject: [PATCH] 1. default gopath=false, 2. fix error work path. --- cmd/commands/api/apiapp.go | 22 ++++++++++++---------- cmd/commands/hprose/hprose.go | 21 +++++++++++---------- cmd/commands/new/new.go | 10 +++++----- utils/utils.go | 6 +++--- 4 files changed, 31 insertions(+), 28 deletions(-) diff --git a/cmd/commands/api/apiapp.go b/cmd/commands/api/apiapp.go index ba0b45f..4ecbc6a 100644 --- a/cmd/commands/api/apiapp.go +++ b/cmd/commands/api/apiapp.go @@ -34,9 +34,10 @@ var CmdApiapp = &commands.Command{ Short: "Creates a Beego API application", Long: ` The command 'api' creates a Beego API application. + now default supoort generate a go modules project. {{"Example:"|bold}} - $ bee api [appname] [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-module=true] [-beego=v1.12.1] + $ bee api [appname] [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-gopath=false] [-beego=v1.12.1] If 'conn' argument is empty, the command will generate an example API application. Otherwise the command will connect to your database and generate models based on the existing tables. @@ -44,7 +45,7 @@ var CmdApiapp = &commands.Command{ The command 'api' creates a folder named [appname] with the following structure: ├── main.go - ├── go.mod + ├── go.mod ├── {{"conf"|foldername}} │ └── app.conf ├── {{"controllers"|foldername}} @@ -543,15 +544,15 @@ func TestGet(t *testing.T) { } ` -var module utils.DocValue +var gopath utils.DocValue var beegoVersion utils.DocValue func init() { CmdApiapp.Flag.Var(&generate.Tables, "tables", "List of table names separated by a comma.") CmdApiapp.Flag.Var(&generate.SQLDriver, "driver", "Database driver. Either mysql, postgres or sqlite.") CmdApiapp.Flag.Var(&generate.SQLConn, "conn", "Connection string used by the driver to connect to a database instance.") - CmdApiapp.Flag.Var(&module, "module", "Support go modules") - CmdApiapp.Flag.Var(&beegoVersion, "beego", "set beego version,only take effect by -module=true") + CmdApiapp.Flag.Var(&gopath, "gopath", "Support go path,default false") + CmdApiapp.Flag.Var(&beegoVersion, "beego", "set beego version,only take effect by go mod") commands.AvailableCommands = append(commands.AvailableCommands, CmdApiapp) } @@ -563,14 +564,15 @@ func createAPI(cmd *commands.Command, args []string) int { } if len(args) >= 2 { - cmd.Flag.Parse(args[1:]) - } else { - module = "false" + err := cmd.Flag.Parse(args[1:]) + if err != nil { + beeLogger.Log.Fatal("Parse args err " + err.Error()) + } } var appPath string var packPath string var err error - if module != `true` { + if gopath == `true` { beeLogger.Log.Info("generate api project support GOPATH") version.ShowShortVersionBanner() appPath, packPath, err = utils.CheckEnv(args[0]) @@ -605,7 +607,7 @@ func createAPI(cmd *commands.Command, args []string) int { beeLogger.Log.Info("Creating API...") os.MkdirAll(appPath, 0755) - if module == `true` { //generate first for calc model name + if gopath != `true` { //generate first for calc model name fmt.Fprintf(output, "\t%s%screate%s\t %s%s\n", "\x1b[32m", "\x1b[1m", "\x1b[21m", path.Join(appPath, "go.mod"), "\x1b[0m") utils.WriteToFile(path.Join(appPath, "go.mod"), fmt.Sprintf(goMod, packPath, utils.GetGoVersionSkipMinor(), beegoVersion.String())) } diff --git a/cmd/commands/hprose/hprose.go b/cmd/commands/hprose/hprose.go index 50ba5c1..bdd52c8 100644 --- a/cmd/commands/hprose/hprose.go +++ b/cmd/commands/hprose/hprose.go @@ -24,7 +24,7 @@ var CmdHproseapp = &commands.Command{ {{"To scaffold out your application, use:"|bold}} - $ bee hprose [appname] [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-module=true] [-beego=v1.12.1] + $ bee hprose [appname] [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-gopath=false] [-beego=v1.12.1] If 'conn' is empty, the command will generate a sample application. Otherwise the command will connect to your database and generate models based on the existing tables. @@ -52,15 +52,15 @@ require github.com/astaxie/beego %s require github.com/smartystreets/goconvey v1.6.4 ` -var module utils.DocValue +var gopath utils.DocValue var beegoVersion utils.DocValue func init() { CmdHproseapp.Flag.Var(&generate.Tables, "tables", "List of table names separated by a comma.") CmdHproseapp.Flag.Var(&generate.SQLDriver, "driver", "Database driver. Either mysql, postgres or sqlite.") CmdHproseapp.Flag.Var(&generate.SQLConn, "conn", "Connection string used by the driver to connect to a database instance.") - CmdHproseapp.Flag.Var(&module, "module", "Support go modules") - CmdHproseapp.Flag.Var(&beegoVersion, "beego", "set beego version,only take effect by -module=true") + CmdHproseapp.Flag.Var(&gopath, "gopath", "Support go path,default false") + CmdHproseapp.Flag.Var(&beegoVersion, "beego", "set beego version,only take effect by go mod") commands.AvailableCommands = append(commands.AvailableCommands, CmdHproseapp) } @@ -71,15 +71,16 @@ func createhprose(cmd *commands.Command, args []string) int { } curpath, _ := os.Getwd() - if len(args) > 1 { - cmd.Flag.Parse(args[1:]) - } else { - module = "false" + if len(args) >= 2 { + err := cmd.Flag.Parse(args[1:]) + if err != nil { + beeLogger.Log.Fatal("Parse args err " + err.Error()) + } } var apppath string var packpath string var err error - if module != `true` { + if gopath == `true` { beeLogger.Log.Info("generate api project support GOPATH") version.ShowShortVersionBanner() apppath, packpath, err = utils.CheckEnv(args[0]) @@ -109,7 +110,7 @@ func createhprose(cmd *commands.Command, args []string) int { beeLogger.Log.Info("Creating Hprose application...") os.MkdirAll(apppath, 0755) - if module == `true` { //generate first for calc model name + if gopath != `true` { //generate first for calc model name fmt.Fprintf(output, "\t%s%screate%s\t %s%s\n", "\x1b[32m", "\x1b[1m", "\x1b[21m", path.Join(apppath, "go.mod"), "\x1b[0m") utils.WriteToFile(path.Join(apppath, "go.mod"), fmt.Sprintf(goMod, packpath, utils.GetGoVersionSkipMinor(), beegoVersion.String())) } diff --git a/cmd/commands/new/new.go b/cmd/commands/new/new.go index 75bafdb..6c71f07 100644 --- a/cmd/commands/new/new.go +++ b/cmd/commands/new/new.go @@ -31,12 +31,12 @@ var gopath utils.DocValue var beegoVersion utils.DocValue var CmdNew = &commands.Command{ - UsageLine: "new [appname] [-module=true] [-beego=v1.12.1]", + UsageLine: "new [appname] [-gopath=false] [-beego=v1.12.1]", Short: "Creates a Beego application", Long: ` Creates a Beego application for the given app name in the current directory. - now supoort generate a go modules project - The command 'new' creates a folder named [appname] [-module=true] [-beego=v1.12.1] and generates the following structure: + now default supoort generate a go modules project + The command 'new' creates a folder named [appname] [-gopath=false] [-beego=v1.12.1] and generates the following structure: ├── main.go ├── go.mod @@ -255,8 +255,8 @@ var reloadJsClient = `function b(a){var c=new WebSocket(a);c.onclose=function(){ ` func init() { - CmdNew.Flag.Var(&gopath, "gopath", "Support go path") - CmdNew.Flag.Var(&beegoVersion, "beego", "set beego version,only take effect by module mod") + CmdNew.Flag.Var(&gopath, "gopath", "Support go path,default false") + CmdNew.Flag.Var(&beegoVersion, "beego", "set beego version,only take effect by go mod") commands.AvailableCommands = append(commands.AvailableCommands, CmdNew) } diff --git a/utils/utils.go b/utils/utils.go index f4516e8..eedd57a 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -34,11 +34,11 @@ import ( ) func GetBeeWorkPath() string { - beePath, err := filepath.Abs(filepath.Dir(os.Args[0])) + curpath, err := os.Getwd() if err != nil { panic(err) } - return beePath + return curpath } // Go is a basic promise implementation: it wraps calls a function in a goroutine @@ -313,7 +313,7 @@ func Tmpl(text string, data interface{}) { func CheckEnv(appname string) (apppath, packpath string, err error) { gps := GetGOPATHs() if len(gps) == 0 { - beeLogger.Log.Error("if you want new a go module project,please add param `-module=true` and set env `G111MODULE=on`") + beeLogger.Log.Error("if you want new a go module project,please add param `-gopath=false`.") beeLogger.Log.Fatal("GOPATH environment variable is not set or empty") } currpath, _ := os.Getwd()