Feature rpc protoc (#1251)
* code generation by protoc * generate pb by protoc direct * support: grpc code generation by protoc directly * format code * check --go_out & --go-grpc_out * fix typo * Update version * fix typo * optimize: remove deprecated unit test * format code Co-authored-by: anqiansong <anqiansong@bytedance.com>
This commit is contained in:
@@ -20,6 +20,7 @@ const (
|
||||
server = "server"
|
||||
svc = "svc"
|
||||
pb = "pb"
|
||||
protoGo = "proto-go"
|
||||
call = "call"
|
||||
)
|
||||
|
||||
@@ -34,6 +35,7 @@ type (
|
||||
GetServer() Dir
|
||||
GetSvc() Dir
|
||||
GetPb() Dir
|
||||
GetProtoGo() Dir
|
||||
GetMain() Dir
|
||||
GetServiceName() stringx.String
|
||||
}
|
||||
@@ -51,7 +53,7 @@ type (
|
||||
}
|
||||
)
|
||||
|
||||
func mkdir(ctx *ctx.ProjectContext, proto parser.Proto, _ *conf.Config) (DirContext, error) {
|
||||
func mkdir(ctx *ctx.ProjectContext, proto parser.Proto, _ *conf.Config, c *ZRpcContext) (DirContext, error) {
|
||||
inner := make(map[string]Dir)
|
||||
etcDir := filepath.Join(ctx.WorkDir, "etc")
|
||||
internalDir := filepath.Join(ctx.WorkDir, "internal")
|
||||
@@ -60,6 +62,12 @@ func mkdir(ctx *ctx.ProjectContext, proto parser.Proto, _ *conf.Config) (DirCont
|
||||
serverDir := filepath.Join(internalDir, "server")
|
||||
svcDir := filepath.Join(internalDir, "svc")
|
||||
pbDir := filepath.Join(ctx.WorkDir, proto.GoPackage)
|
||||
protoGoDir := pbDir
|
||||
if c != nil {
|
||||
pbDir = c.ProtoGenGrpcDir
|
||||
protoGoDir = c.ProtoGenGoDir
|
||||
}
|
||||
|
||||
callDir := filepath.Join(ctx.WorkDir, strings.ToLower(stringx.From(proto.Service.Name).ToCamel()))
|
||||
if strings.EqualFold(proto.Service.Name, proto.GoPackage) {
|
||||
callDir = filepath.Join(ctx.WorkDir, strings.ToLower(stringx.From(proto.Service.Name+"_client").ToCamel()))
|
||||
@@ -100,11 +108,19 @@ func mkdir(ctx *ctx.ProjectContext, proto parser.Proto, _ *conf.Config) (DirCont
|
||||
Package: filepath.ToSlash(filepath.Join(ctx.Path, strings.TrimPrefix(svcDir, ctx.Dir))),
|
||||
Base: filepath.Base(svcDir),
|
||||
}
|
||||
|
||||
inner[pb] = Dir{
|
||||
Filename: pbDir,
|
||||
Package: filepath.ToSlash(filepath.Join(ctx.Path, strings.TrimPrefix(pbDir, ctx.Dir))),
|
||||
Base: filepath.Base(pbDir),
|
||||
}
|
||||
|
||||
inner[protoGo] = Dir{
|
||||
Filename: protoGoDir,
|
||||
Package: filepath.ToSlash(filepath.Join(ctx.Path, strings.TrimPrefix(protoGoDir, ctx.Dir))),
|
||||
Base: filepath.Base(protoGoDir),
|
||||
}
|
||||
|
||||
inner[call] = Dir{
|
||||
Filename: callDir,
|
||||
Package: filepath.ToSlash(filepath.Join(ctx.Path, strings.TrimPrefix(callDir, ctx.Dir))),
|
||||
@@ -155,6 +171,10 @@ func (d *defaultDirContext) GetPb() Dir {
|
||||
return d.inner[pb]
|
||||
}
|
||||
|
||||
func (d *defaultDirContext) GetProtoGo() Dir {
|
||||
return d.inner[protoGo]
|
||||
}
|
||||
|
||||
func (d *defaultDirContext) GetMain() Dir {
|
||||
return d.inner[wd]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user