diff --git a/tools/goctl/api/gogen/gen.go b/tools/goctl/api/gogen/gen.go index 14adbf29..ef92ca86 100644 --- a/tools/goctl/api/gogen/gen.go +++ b/tools/goctl/api/gogen/gen.go @@ -47,7 +47,7 @@ func GoCommand(c *cli.Context) error { lang.Must(util.MkdirIfNotExist(dir)) lang.Must(genEtc(dir, api)) - lang.Must(genConfig(dir, api)) + lang.Must(genConfig(dir)) lang.Must(genMain(dir, api)) lang.Must(genServiceContext(dir, api)) lang.Must(genTypes(dir, api)) diff --git a/tools/goctl/api/gogen/genconfig.go b/tools/goctl/api/gogen/genconfig.go index d72b44bf..26307e33 100644 --- a/tools/goctl/api/gogen/genconfig.go +++ b/tools/goctl/api/gogen/genconfig.go @@ -2,10 +2,11 @@ package gogen import ( "bytes" + "fmt" "text/template" - "zero/tools/goctl/api/spec" "zero/tools/goctl/api/util" + "zero/tools/goctl/vars" ) const ( @@ -13,7 +14,6 @@ const ( configTemplate = `package config import ( - "zero/rest" {{.authImport}} ) @@ -23,7 +23,7 @@ type Config struct { ` ) -func genConfig(dir string, api *spec.ApiSpec) error { +func genConfig(dir string) error { fp, created, err := util.MaybeCreateFile(dir, configDir, configFile) if err != nil { return err @@ -33,7 +33,7 @@ func genConfig(dir string, api *spec.ApiSpec) error { } defer fp.Close() - var authImportStr = "" + var authImportStr = fmt.Sprintf("\"%s/rest\"", vars.ProjectOpenSourceUrl) t := template.Must(template.New("configTemplate").Parse(configTemplate)) buffer := new(bytes.Buffer) err = t.Execute(buffer, map[string]string{ diff --git a/tools/goctl/api/gogen/genhandlers.go b/tools/goctl/api/gogen/genhandlers.go index 57ea4e41..0f881909 100644 --- a/tools/goctl/api/gogen/genhandlers.go +++ b/tools/goctl/api/gogen/genhandlers.go @@ -11,6 +11,7 @@ import ( "zero/tools/goctl/api/spec" apiutil "zero/tools/goctl/api/util" "zero/tools/goctl/util" + "zero/tools/goctl/vars" ) const ( @@ -19,7 +20,6 @@ const ( import ( "net/http" - "zero/rest/httpx" {{.importPackages}} ) @@ -162,6 +162,7 @@ func genHandlers(dir string, api *spec.ApiSpec) error { func genHandlerImports(group spec.Group, route spec.Route, parentPkg string) string { var imports []string + imports = append(imports, fmt.Sprintf("\"%s/rest/httpx\"", vars.ProjectOpenSourceUrl)) imports = append(imports, fmt.Sprintf("\"%s\"", path.Join(parentPkg, contextDir))) if len(route.RequestType.Name) > 0 || len(route.ResponseType.Name) > 0 { imports = append(imports, fmt.Sprintf("\"%s\"", path.Join(parentPkg, typesDir))) diff --git a/tools/goctl/api/gogen/genlogic.go b/tools/goctl/api/gogen/genlogic.go index c2b54315..31e0fd95 100644 --- a/tools/goctl/api/gogen/genlogic.go +++ b/tools/goctl/api/gogen/genlogic.go @@ -9,6 +9,7 @@ import ( "zero/tools/goctl/api/spec" "zero/tools/goctl/api/util" + "zero/tools/goctl/vars" ) const logicTemplate = `package logic @@ -121,7 +122,7 @@ func genLogicImports(route spec.Route, parentPkg string) string { var imports []string imports = append(imports, `"context"`) imports = append(imports, "\n") - imports = append(imports, `"zero/core/logx"`) + imports = append(imports, fmt.Sprintf("\"%s/core/logx\"", vars.ProjectOpenSourceUrl)) if len(route.ResponseType.Name) > 0 || len(route.RequestType.Name) > 0 { imports = append(imports, fmt.Sprintf("\"%s\"", path.Join(parentPkg, typesDir))) } diff --git a/tools/goctl/api/gogen/genmain.go b/tools/goctl/api/gogen/genmain.go index 6dc1b07b..bf7668e7 100644 --- a/tools/goctl/api/gogen/genmain.go +++ b/tools/goctl/api/gogen/genmain.go @@ -10,6 +10,7 @@ import ( "zero/tools/goctl/api/spec" "zero/tools/goctl/api/util" + "zero/tools/goctl/vars" ) const mainTemplate = `package main @@ -74,8 +75,8 @@ func genMain(dir string, api *spec.ApiSpec) error { func genMainImports(parentPkg string) string { imports := []string{ - `"zero/core/conf"`, - `"zero/rest"`, + fmt.Sprintf("\"%s/core/conf\"", vars.ProjectOpenSourceUrl), + fmt.Sprintf("\"%s/rest\"", vars.ProjectOpenSourceUrl), } imports = append(imports, fmt.Sprintf("\"%s\"", path.Join(parentPkg, configDir))) imports = append(imports, fmt.Sprintf("\"%s\"", path.Join(parentPkg, handlerDir))) diff --git a/tools/goctl/api/gogen/genroutes.go b/tools/goctl/api/gogen/genroutes.go index 75221edd..3c412e02 100644 --- a/tools/goctl/api/gogen/genroutes.go +++ b/tools/goctl/api/gogen/genroutes.go @@ -12,6 +12,7 @@ import ( "zero/tools/goctl/api/spec" apiutil "zero/tools/goctl/api/util" "zero/tools/goctl/util" + "zero/tools/goctl/vars" ) const ( @@ -129,7 +130,7 @@ func genRoutes(dir string, api *spec.ApiSpec) error { func genRouteImports(parentPkg string, api *spec.ApiSpec) string { var importSet = collection.NewSet() - importSet.AddStr(`"zero/rest"`) + importSet.AddStr(fmt.Sprintf("\"%s/rest\"", vars.ProjectOpenSourceUrl)) importSet.AddStr(fmt.Sprintf("\"%s\"", path.Join(parentPkg, contextDir))) for _, group := range api.Service.Groups { for _, route := range group.Routes { diff --git a/tools/goctl/api/gogen/util.go b/tools/goctl/api/gogen/util.go index 89c90081..1064ce66 100644 --- a/tools/goctl/api/gogen/util.go +++ b/tools/goctl/api/gogen/util.go @@ -4,13 +4,14 @@ import ( "fmt" goformat "go/format" "io" + "os" + "path" "path/filepath" "strings" "zero/core/collection" "zero/tools/goctl/api/spec" "zero/tools/goctl/api/util" - "zero/tools/goctl/vars" ) func getParentPackage(dir string) (string, error) { @@ -18,12 +19,13 @@ func getParentPackage(dir string) (string, error) { if err != nil { return "", err } - pos := strings.Index(absDir, vars.ProjectName) + gopath := os.Getenv("GOPATH") + parent := path.Join(gopath, "src") + pos := strings.Index(absDir, parent) if pos < 0 { - return "", fmt.Errorf("%s not in project directory", dir) + return "", fmt.Errorf("%s not in GOPATH %s directory", absDir, gopath) } - - return absDir[pos:], nil + return absDir[len(parent)+1:], nil } func writeIndent(writer io.Writer, indent int) { diff --git a/tools/goctl/vars/settings.go b/tools/goctl/vars/settings.go index c7b9071f..c5c6a00f 100644 --- a/tools/goctl/vars/settings.go +++ b/tools/goctl/vars/settings.go @@ -1,3 +1,6 @@ package vars -const ProjectName = "zero" +const ( + ProjectName = "zero" + ProjectOpenSourceUrl = "github.com/tal-tech/go-zero" +)