Skip to content

Commit 70cd4a6

Browse files
committed
feat: Support projectPkg template variables in config, handler, logic, main, svc template files
1 parent c9a3198 commit 70cd4a6

File tree

11 files changed

+42
-41
lines changed

11 files changed

+42
-41
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, rootPkg, 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 & 2 deletions
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, rootPkg 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,7 +60,7 @@ func genConfig(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error
6060
"authImport": authImportStr,
6161
"auth": strings.Join(auths, "\n"),
6262
"jwtTrans": strings.Join(jwtTransList, "\n"),
63-
"rootPkg": rootPkg,
63+
"projectPkg": projectPkg,
6464
},
6565
})
6666
}

tools/goctl/api/gogen/genhandlers.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const defaultLogicPackage = "logic"
1818
//go:embed handler.tpl
1919
var handlerTemplate string
2020

21-
func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
21+
func genHandler(dir, rootPkg, projectPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
2222
handler := getHandlerName(route)
2323
handlerPath := getHandlerFolderPath(group, route)
2424
pkgName := handlerPath[strings.LastIndex(handlerPath, "/")+1:]
@@ -52,15 +52,15 @@ func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route
5252
"HasRequest": len(route.RequestTypeName()) > 0,
5353
"HasDoc": len(route.JoinedDoc()) > 0,
5454
"Doc": getDoc(route.JoinedDoc()),
55-
"rootPkg": rootPkg,
55+
"projectPkg": projectPkg,
5656
},
5757
})
5858
}
5959

60-
func genHandlers(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
60+
func genHandlers(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
6161
for _, group := range api.Service.Groups {
6262
for _, route := range group.Routes {
63-
if err := genHandler(dir, rootPkg, cfg, group, route); err != nil {
63+
if err := genHandler(dir, rootPkg, projectPkg, cfg, group, route); err != nil {
6464
return err
6565
}
6666
}

tools/goctl/api/gogen/genhandlerstest.go

Lines changed: 4 additions & 4 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,15 +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-
"rootPkg": rootPkg,
53+
"projectPkg": projectPkg,
5454
},
5555
})
5656
}
5757

58-
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 {
5959
for _, group := range api.Service.Groups {
6060
for _, route := range group.Routes {
61-
if err := genHandlerTest(dir, rootPkg, cfg, group, route); err != nil {
61+
if err := genHandlerTest(dir, rootPkg, projectPkg, cfg, group, route); err != nil {
6262
return err
6363
}
6464
}

tools/goctl/api/gogen/genlogic.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ import (
1818
//go:embed logic.tpl
1919
var logicTemplate string
2020

21-
func genLogic(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
21+
func genLogic(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
2222
for _, g := range api.Service.Groups {
2323
for _, r := range g.Routes {
24-
err := genLogicByRoute(dir, rootPkg, cfg, g, r)
24+
err := genLogicByRoute(dir, rootPkg, projectPkg, cfg, g, r)
2525
if err != nil {
2626
return err
2727
}
@@ -30,7 +30,7 @@ func genLogic(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error
3030
return nil
3131
}
3232

33-
func genLogicByRoute(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
33+
func genLogicByRoute(dir, rootPkg, projectPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
3434
logic := getLogicName(route)
3535
goFile, err := format.FileNamingFormat(cfg.NamingFormat, logic)
3636
if err != nil {
@@ -72,7 +72,7 @@ func genLogicByRoute(dir, rootPkg string, cfg *config.Config, group spec.Group,
7272
"request": requestString,
7373
"hasDoc": len(route.JoinedDoc()) > 0,
7474
"doc": getDoc(route.JoinedDoc()),
75-
"rootPkg": rootPkg,
75+
"projectPkg": projectPkg,
7676
},
7777
})
7878
}

tools/goctl/api/gogen/genlogictest.go

Lines changed: 4 additions & 4 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,7 +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-
"rootPkg": rootPkg,
76+
"projectPkg": projectPkg,
7777
},
7878
})
7979
}

tools/goctl/api/gogen/genmain.go

Lines changed: 2 additions & 2 deletions
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,7 +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-
"rootPkg": rootPkg,
41+
"projectPkg": projectPkg,
4242
},
4343
})
4444
}

tools/goctl/api/gogen/genroutes.go

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

81-
func genRoutes(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
81+
func genRoutes(dir, rootPkg, projectPkg string, cfg *config.Config, api *spec.ApiSpec) error {
8282
var builder strings.Builder
8383
groups, err := getRoutes(api)
8484
if err != nil {
@@ -202,6 +202,7 @@ rest.WithPrefix("%s"),`, g.prefix)
202202
"importPackages": genRouteImports(rootPkg, api),
203203
"routesAdditions": strings.TrimSpace(builder.String()),
204204
"version": version.BuildVersion,
205+
"projectPkg": projectPkg,
205206
},
206207
})
207208
}

tools/goctl/api/gogen/gensvc.go

Lines changed: 2 additions & 2 deletions
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,7 +53,7 @@ func genServiceContext(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpe
5353
"config": "config.Config",
5454
"middleware": middlewareStr,
5555
"middlewareAssignment": middlewareAssignment,
56-
"rootPkg": rootPkg,
56+
"projectPkg": projectPkg,
5757
},
5858
})
5959
}

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)