diff --git a/protoc-gen-go-jsonpb/main.go b/protoc-gen-go-jsonpb/main.go index efb5489..912e55a 100644 --- a/protoc-gen-go-jsonpb/main.go +++ b/protoc-gen-go-jsonpb/main.go @@ -85,7 +85,16 @@ func main() { func generate(req *plugin.CodeGeneratorRequest) ([]*plugin.CodeGeneratorResponse_File, error) { var files []*plugin.CodeGeneratorResponse_File + genFileNames := make(map[string]bool) + for _, n := range req.FileToGenerate { + genFileNames[n] = true + } for _, desc := range req.GetProtoFile() { + name := desc.GetName() + if _, ok := genFileNames[name]; !ok { + // Only emit output for files present in req.FileToGenerate. + continue + } code, err := genCode(desc) if err != nil { return nil, err @@ -96,7 +105,6 @@ func generate(req *plugin.CodeGeneratorRequest) ([]*plugin.CodeGeneratorResponse return nil, err } - name := desc.GetName() ext := filepath.Ext(name) base := strings.TrimSuffix(name, ext) output := fmt.Sprintf("%s.pb.jsonpb.go", base)