func convert(req *plugin.CodeGeneratorRequest) (*plugin.CodeGeneratorResponse, error) { generateTargets := make(map[string]bool) for _, file := range req.GetFileToGenerate() { generateTargets[file] = true } res := &plugin.CodeGeneratorResponse{} for _, file := range req.GetProtoFile() { for _, msg := range file.GetMessageType() { glog.V(1).Infof("Loading a message type %s from package %s", msg.GetName(), file.GetPackage()) registerType(file.Package, msg) } } for _, file := range req.GetProtoFile() { if _, ok := generateTargets[file.GetName()]; ok { glog.V(1).Info("Converting ", file.GetName()) converted, err := convertFile(file) if err != nil { res.Error = proto.String(fmt.Sprintf("Failed to convert %s: %v", file.GetName(), err)) return res, err } res.File = append(res.File, converted...) } } return res, nil }