Skip to content

Commit 73d6fcf

Browse files
authored
feat: Support projectPkg template variables in config, handler, logic, main, and svc template files (#4939)
1 parent 20d20ef commit 73d6fcf

File tree

11 files changed

+42
-34
lines changed

11 files changed

+42
-34
lines changed

tools/goctl/api/gogen/gen.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -90,23 +90,23 @@ func DoGenProject(apiFile, dir, style string, withTest bool) error {
9090
}
9191

9292
logx.Must(pathx.MkdirIfNotExist(dir))
93-
rootPkg, err := golang.GetParentPackage(dir)
93+
rootPkg, projectPkg, err := golang.GetParentPackage(dir)
9494
if err != nil {
9595
return err
9696
}
9797

9898
logx.Must(genEtc(dir, cfg, api))
99-
logx.Must(genConfig(dir, cfg, api))
100-
logx.Must(genMain(dir, rootPkg, cfg, api))
101-
logx.Must(genServiceContext(dir, rootPkg, cfg, api))
99+
logx.Must(genConfig(dir, projectPkg, cfg, api))
100+
logx.Must(genMain(dir, rootPkg, projectPkg, cfg, api))
101+
logx.Must(genServiceContext(dir, rootPkg, projectPkg, cfg, api))
102102
logx.Must(genTypes(dir, cfg, api))
103-
logx.Must(genRoutes(dir, rootPkg, cfg, api))
104-
logx.Must(genHandlers(dir, rootPkg, cfg, api))
105-
logx.Must(genLogic(dir, rootPkg, cfg, api))
103+
logx.Must(genRoutes(dir, rootPkg, projectPkg, cfg, api))
104+
logx.Must(genHandlers(dir, rootPkg, projectPkg, cfg, api))
105+
logx.Must(genLogic(dir, rootPkg, projectPkg, cfg, api))
106106
logx.Must(genMiddleware(dir, cfg, api))
107107
if withTest {
108-
logx.Must(genHandlersTest(dir, rootPkg, cfg, api))
109-
logx.Must(genLogicTest(dir, rootPkg, cfg, api))
108+
logx.Must(genHandlersTest(dir, rootPkg, projectPkg, cfg, api))
109+
logx.Must(genLogicTest(dir, rootPkg, projectPkg, cfg, api))
110110
}
111111

112112
if err := backupAndSweep(apiFile); err != nil {

tools/goctl/api/gogen/genconfig.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ const (
2929
//go:embed config.tpl
3030
var configTemplate string
3131

32-
func genConfig(dir string, cfg *config.Config, api *spec.ApiSpec) error {
32+
func genConfig(dir, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
3333
filename, err := format.FileNamingFormat(cfg.NamingFormat, configFile)
3434
if err != nil {
3535
return err
@@ -60,6 +60,7 @@ func genConfig(dir string, cfg *config.Config, api *spec.ApiSpec) error {
6060
"authImport": authImportStr,
6161
"auth": strings.Join(auths, "\n"),
6262
"jwtTrans": strings.Join(jwtTransList, "\n"),
63+
"projectPkg": projectPkg,
6364
},
6465
})
6566
}

tools/goctl/api/gogen/genhandlers.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var (
2222
sseHandlerTemplate string
2323
)
2424

25-
func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
25+
func genHandler(dir, rootPkg, projectPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
2626
handler := getHandlerName(route)
2727
handlerPath := getHandlerFolderPath(group, route)
2828
pkgName := handlerPath[strings.LastIndex(handlerPath, "/")+1:]
@@ -63,14 +63,15 @@ func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route
6363
"HasRequest": len(route.RequestTypeName()) > 0,
6464
"HasDoc": len(route.JoinedDoc()) > 0,
6565
"Doc": getDoc(route.JoinedDoc()),
66+
"projectPkg": projectPkg,
6667
},
6768
})
6869
}
6970

70-
func genHandlers(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
71+
func genHandlers(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
7172
for _, group := range api.Service.Groups {
7273
for _, route := range group.Routes {
73-
if err := genHandler(dir, rootPkg, cfg, group, route); err != nil {
74+
if err := genHandler(dir, rootPkg, projectPkg, cfg, group, route); err != nil {
7475
return err
7576
}
7677
}

tools/goctl/api/gogen/genhandlerstest.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
//go:embed handler_test.tpl
1616
var handlerTestTemplate string
1717

18-
func genHandlerTest(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
18+
func genHandlerTest(dir, rootPkg, projectPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
1919
handler := getHandlerName(route)
2020
handlerPath := getHandlerFolderPath(group, route)
2121
pkgName := handlerPath[strings.LastIndex(handlerPath, "/")+1:]
@@ -50,14 +50,15 @@ func genHandlerTest(dir, rootPkg string, cfg *config.Config, group spec.Group, r
5050
"HasRequest": len(route.RequestTypeName()) > 0,
5151
"HasDoc": len(route.JoinedDoc()) > 0,
5252
"Doc": getDoc(route.JoinedDoc()),
53+
"projectPkg": projectPkg,
5354
},
5455
})
5556
}
5657

57-
func genHandlersTest(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
58+
func genHandlersTest(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
5859
for _, group := range api.Service.Groups {
5960
for _, route := range group.Routes {
60-
if err := genHandlerTest(dir, rootPkg, cfg, group, route); err != nil {
61+
if err := genHandlerTest(dir, rootPkg, projectPkg, cfg, group, route); err != nil {
6162
return err
6263
}
6364
}

tools/goctl/api/gogen/genlogic.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ var (
2323
sseLogicTemplate string
2424
)
2525

26-
func genLogic(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
26+
func genLogic(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
2727
for _, g := range api.Service.Groups {
2828
for _, r := range g.Routes {
29-
err := genLogicByRoute(dir, rootPkg, cfg, g, r)
29+
err := genLogicByRoute(dir, rootPkg, projectPkg, cfg, g, r)
3030
if err != nil {
3131
return err
3232
}
@@ -35,7 +35,7 @@ func genLogic(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error
3535
return nil
3636
}
3737

38-
func genLogicByRoute(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
38+
func genLogicByRoute(dir, rootPkg, projectPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
3939
logic := getLogicName(route)
4040
goFile, err := format.FileNamingFormat(cfg.NamingFormat, logic)
4141
if err != nil {
@@ -91,6 +91,7 @@ func genLogicByRoute(dir, rootPkg string, cfg *config.Config, group spec.Group,
9191
"request": requestString,
9292
"hasDoc": len(route.JoinedDoc()) > 0,
9393
"doc": getDoc(route.JoinedDoc()),
94+
"projectPkg": projectPkg,
9495
},
9596
})
9697
}

tools/goctl/api/gogen/genlogictest.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import (
1414
//go:embed logic_test.tpl
1515
var logicTestTemplate string
1616

17-
func genLogicTest(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
17+
func genLogicTest(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
1818
for _, g := range api.Service.Groups {
1919
for _, r := range g.Routes {
20-
err := genLogicTestByRoute(dir, rootPkg, cfg, g, r)
20+
err := genLogicTestByRoute(dir, rootPkg, projectPkg, cfg, g, r)
2121
if err != nil {
2222
return err
2323
}
@@ -26,7 +26,7 @@ func genLogicTest(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) er
2626
return nil
2727
}
2828

29-
func genLogicTestByRoute(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
29+
func genLogicTestByRoute(dir, rootPkg, projectPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
3030
logic := getLogicName(route)
3131
goFile, err := format.FileNamingFormat(cfg.NamingFormat, logic)
3232
if err != nil {
@@ -73,6 +73,7 @@ func genLogicTestByRoute(dir, rootPkg string, cfg *config.Config, group spec.Gro
7373
"requestType": requestType,
7474
"hasDoc": len(route.JoinedDoc()) > 0,
7575
"doc": getDoc(route.JoinedDoc()),
76+
"projectPkg": projectPkg,
7677
},
7778
})
7879
}

tools/goctl/api/gogen/genmain.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
//go:embed main.tpl
1616
var mainTemplate string
1717

18-
func genMain(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
18+
func genMain(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
1919
name := strings.ToLower(api.Service.Name)
2020
filename, err := format.FileNamingFormat(cfg.NamingFormat, name)
2121
if err != nil {
@@ -38,6 +38,7 @@ func genMain(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
3838
data: map[string]string{
3939
"importPackages": genMainImports(rootPkg),
4040
"serviceName": configName,
41+
"projectPkg": projectPkg,
4142
},
4243
})
4344
}

tools/goctl/api/gogen/genroutes.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ type (
7979
}
8080
)
8181

82-
func genRoutes(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
82+
func genRoutes(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
8383
var builder strings.Builder
8484
groups, err := getRoutes(api)
8585
if err != nil {
@@ -211,6 +211,7 @@ rest.WithPrefix("%s"),`, g.prefix)
211211
"importPackages": genRouteImports(rootPkg, api),
212212
"routesAdditions": strings.TrimSpace(builder.String()),
213213
"version": version.BuildVersion,
214+
"projectPkg": projectPkg,
214215
},
215216
})
216217
}

tools/goctl/api/gogen/gensvc.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const contextFilename = "service_context"
1717
//go:embed svc.tpl
1818
var contextTemplate string
1919

20-
func genServiceContext(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
20+
func genServiceContext(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
2121
filename, err := format.FileNamingFormat(cfg.NamingFormat, contextFilename)
2222
if err != nil {
2323
return err
@@ -53,6 +53,7 @@ func genServiceContext(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpe
5353
"config": "config.Config",
5454
"middleware": middlewareStr,
5555
"middlewareAssignment": middlewareAssignment,
56+
"projectPkg": projectPkg,
5657
},
5758
})
5859
}

tools/goctl/pkg/golang/path.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,29 @@ import (
88
"github.com/zeromicro/go-zero/tools/goctl/util/pathx"
99
)
1010

11-
func GetParentPackage(dir string) (string, error) {
11+
func GetParentPackage(dir string) (string, string, error) {
1212
abs, err := filepath.Abs(dir)
1313
if err != nil {
14-
return "", err
14+
return "", "", err
1515
}
1616

1717
projectCtx, err := ctx.Prepare(abs)
1818
if err != nil {
19-
return "", err
19+
return "", "", err
2020
}
2121

2222
// fix https://github.com/zeromicro/go-zero/issues/1058
2323
wd := projectCtx.WorkDir
2424
d := projectCtx.Dir
2525
same, err := pathx.SameFile(wd, d)
2626
if err != nil {
27-
return "", err
27+
return "", "", err
2828
}
2929

3030
trim := strings.TrimPrefix(projectCtx.WorkDir, projectCtx.Dir)
3131
if same {
3232
trim = strings.TrimPrefix(strings.ToLower(projectCtx.WorkDir), strings.ToLower(projectCtx.Dir))
3333
}
3434

35-
return filepath.ToSlash(filepath.Join(projectCtx.Path, trim)), nil
35+
return filepath.ToSlash(filepath.Join(projectCtx.Path, trim)), projectCtx.Path, nil
3636
}

0 commit comments

Comments
 (0)