Skip to content

Commit ef91a6a

Browse files
authored
Merge pull request #1037 from qazwsxedckll/dev
feat: generate errors even if no services
2 parents fb0ab3e + f9650ee commit ef91a6a

18 files changed

+483
-720
lines changed

protobuf/protoc-gen-go-grain/Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
.PHONY: testdata
22
testdata:
3-
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. testdata/hello/*.proto
4-
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. testdata/reenter/*.proto
5-
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. testdata/multi-services/*.proto
6-
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. testdata/error/*.proto
3+
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. test/hello/*.proto
4+
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. test/reenter/*.proto
5+
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. test/multi-services/*.proto
6+
protoc --go_out=. --go_opt=paths=source_relative --plugin=protoc-gen-go-grain=protoc-gen-go-grain.sh --go-grain_out=. --go-grain_opt=paths=source_relative -I../../ -I. test/error/*.proto
77

88
.PHONY: options
99
options:

protobuf/protoc-gen-go-grain/generate.go

+15-13
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,15 @@ var (
3030
)
3131

3232
func generateFile(gen *protogen.Plugin, file *protogen.File) {
33-
if len(file.Services) == 0 {
33+
if len(file.Services) == 0 && len(file.Enums) == 0 {
3434
return
3535
}
36+
3637
filename := file.GeneratedFilenamePrefix + "_grain.pb.go"
3738
g := gen.NewGeneratedFile(filename, file.GoImportPath)
3839

3940
generateHeader(gen, g, file)
40-
generateContent(gen, g, file)
41+
generateContent(g, file)
4142
}
4243

4344
func generateHeader(gen *protogen.Plugin, g *protogen.GeneratedFile, file *protogen.File) {
@@ -60,35 +61,36 @@ func generateHeader(gen *protogen.Plugin, g *protogen.GeneratedFile, file *proto
6061
g.P()
6162
}
6263

63-
func generateContent(gen *protogen.Plugin, g *protogen.GeneratedFile, file *protogen.File) {
64+
func generateContent(g *protogen.GeneratedFile, file *protogen.File) {
6465
g.P("package ", file.GoPackageName)
6566

66-
if len(file.Services) == 0 {
67-
return
68-
}
69-
70-
g.QualifiedGoIdent(actorPackage.Ident(""))
7167
g.QualifiedGoIdent(clusterPackage.Ident(""))
72-
g.QualifiedGoIdent(protoPackage.Ident(""))
7368
g.QualifiedGoIdent(fmtPackage.Ident(""))
74-
g.QualifiedGoIdent(timePackage.Ident(""))
75-
g.QualifiedGoIdent(slogPackage.Ident(""))
7669

7770
for _, enum := range file.Enums {
7871
if enum.Desc.Name() == "ErrorReason" {
7972
generateErrorReasons(g, enum)
8073
}
8174
}
8275

76+
if len(file.Services) == 0 {
77+
return
78+
}
79+
80+
g.QualifiedGoIdent(actorPackage.Ident(""))
81+
g.QualifiedGoIdent(protoPackage.Ident(""))
82+
g.QualifiedGoIdent(timePackage.Ident(""))
83+
g.QualifiedGoIdent(slogPackage.Ident(""))
84+
8385
for _, service := range file.Services {
84-
generateService(service, file, g)
86+
generateService(service, g)
8587
g.P()
8688
}
8789

8890
generateRespond(g)
8991
}
9092

91-
func generateService(service *protogen.Service, file *protogen.File, g *protogen.GeneratedFile) {
93+
func generateService(service *protogen.Service, g *protogen.GeneratedFile) {
9294
if service.Desc.Options().(*descriptorpb.ServiceOptions).GetDeprecated() {
9395
g.P("//")
9496
g.P(deprecationComment)

protobuf/protoc-gen-go-grain/test/error/error.pb.go

+132
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

protobuf/protoc-gen-go-grain/testdata/error/hello.proto protobuf/protoc-gen-go-grain/test/error/error.proto

-10
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,9 @@ syntax = "proto3";
22

33
package hello;
44

5-
import "google/protobuf/empty.proto";
6-
75
option go_package = "github.com/asynkron/protoactor-go/protoc-gen-go-grain/testdata/hello";
86

97
enum ErrorReason {
108
USER_NOT_FOUND = 0;
119
CONTENT_MISSING = 1;
1210
}
13-
14-
message SayHelloResponse {
15-
string message = 1;
16-
}
17-
18-
service Hello {
19-
rpc SayHello (google.protobuf.Empty) returns (SayHelloResponse) {}
20-
}

protobuf/protoc-gen-go-grain/test/error/error_grain.pb.go

+36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)