diff --git a/main.go b/main.go index f444bae..2dd8cf0 100644 --- a/main.go +++ b/main.go @@ -90,6 +90,9 @@ func (g *Generator) Generate(plugin *protogen.Plugin) error { continue case "micro": err = g.microGenerate(component, plugin, genClient, genServer) + if err == nil { + err = g.writeErrors(plugin) + } case "http": err = g.httpGenerate(component, plugin, genClient, genServer) case "grpc", "drpc", "rpc": @@ -113,11 +116,6 @@ func (g *Generator) Generate(plugin *protogen.Plugin) error { } - if err = g.writeErrors(plugin); err != nil { - plugin.Error(err) - return err - } - if err = g.astGenerate(plugin); err != nil { plugin.Error(err) return err diff --git a/util.go b/util.go index 9a7094a..5fac7ff 100644 --- a/util.go +++ b/util.go @@ -968,8 +968,10 @@ func (g *Generator) writeErrors(plugin *protogen.Plugin) error { } var gfile *protogen.GeneratedFile + var importPath protogen.GoImportPath + if len(errorsMap) > 0 { - gfile = plugin.NewGeneratedFile("micro_errors.pb.go", ".") + var packageName string for _, file := range plugin.Files { @@ -980,9 +982,16 @@ func (g *Generator) writeErrors(plugin *protogen.Plugin) error { continue } packageName = string(file.GoPackageName) + importPath = file.GoImportPath break } + if g.standalone { + importPath = "." + } + + gfile = plugin.NewGeneratedFile("micro_errors.pb.go", importPath) + gfile.P("// Code generated by protoc-gen-go-micro. DO NOT EDIT.") gfile.P("// protoc-gen-go-micro version: " + versionComment) gfile.P()