From 24951f7c6d143d0b75a3f827339d40841258e9db Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 15:45:34 +0800 Subject: [PATCH 01/31] chore: update thriftgo --- cmd/hz/go.mod | 2 +- cmd/hz/go.sum | 13 ++++++++----- cmd/hz/sdk/hertz_sdk.go | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 cmd/hz/sdk/hertz_sdk.go diff --git a/cmd/hz/go.mod b/cmd/hz/go.mod index 712c5a28d..c70d87118 100644 --- a/cmd/hz/go.mod +++ b/cmd/hz/go.mod @@ -4,7 +4,7 @@ go 1.16 require ( github.com/Masterminds/sprig/v3 v3.2.3 - github.com/cloudwego/thriftgo v0.1.7 + github.com/cloudwego/thriftgo v0.3.19 github.com/hashicorp/go-version v1.5.0 github.com/jhump/protoreflect v1.12.0 github.com/urfave/cli/v2 v2.23.0 diff --git a/cmd/hz/go.sum b/cmd/hz/go.sum index de5c00d51..e854c2e9e 100644 --- a/cmd/hz/go.sum +++ b/cmd/hz/go.sum @@ -7,18 +7,18 @@ github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7Y github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= -github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudwego/thriftgo v0.1.7 h1:mTGRv6Dtwfp0hTPZXuIHwm3vtGOuZVTrWarI0xVzUYg= -github.com/cloudwego/thriftgo v0.1.7/go.mod h1:LzeafuLSiHA9JTiWC8TIMIq64iadeObgRUhmVG1OC/w= +github.com/cloudwego/thriftgo v0.3.19 h1:G5W8sLFXjuip8Kwl+bv+am48WFiyCJIydN6AiYlwsoo= +github.com/cloudwego/thriftgo v0.3.19/go.mod h1:AdLEJJVGW/ZJYvkkYAZf5SaJH+pA3OyC801WSwqcBwI= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= +github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= @@ -135,8 +135,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -175,6 +176,7 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -182,6 +184,7 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go new file mode 100644 index 000000000..0919fd1b0 --- /dev/null +++ b/cmd/hz/sdk/hertz_sdk.go @@ -0,0 +1 @@ +package sdk From 44d3a9d70040b91dc04b69f05434a12276668a28 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 16:40:29 +0800 Subject: [PATCH 02/31] chore: update thriftgo --- cmd/hz/thrift/plugin.go | 134 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 0e773df30..5ca31ae19 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -44,6 +44,140 @@ type Plugin struct { rmTags []string } +func (plugin *Plugin) HandleRequest() *thriftgo_plugin.Response { + plugin.setLogger() + args := &config.Argument{} + err := plugin.handleRequest() + if err != nil { + logs.Errorf("handle request failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + + args, err = plugin.parseArgs() + if err != nil { + logs.Errorf("parse args failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + + plugin.rmTags = args.RmTags + if args.CmdType == meta.CmdModel { + // check tag options for model mode + CheckTagOption(plugin.args) + res, err := plugin.GetResponse(nil, args.OutDir) + if err != nil { + logs.Errorf("get response failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + plugin.response(res) + if err != nil { + logs.Errorf("response failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + return nil + } + + err = plugin.initNameStyle() + if err != nil { + logs.Errorf("init naming style failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + + options := CheckTagOption(plugin.args) + + pkgInfo, err := plugin.getPackageInfo() + if err != nil { + logs.Errorf("get http package info failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + + customPackageTemplate := args.CustomizePackage + pkg, err := args.GetGoPackage() + if err != nil { + logs.Errorf("get go package failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + handlerDir, err := args.GetHandlerDir() + if err != nil { + logs.Errorf("get handler dir failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + routerDir, err := args.GetRouterDir() + if err != nil { + logs.Errorf("get router dir failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + modelDir, err := args.GetModelDir() + if err != nil { + logs.Errorf("get model dir failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + clientDir, err := args.GetClientDir() + if err != nil { + logs.Errorf("get client dir failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + sg := generator.HttpPackageGenerator{ + ConfigPath: customPackageTemplate, + HandlerDir: handlerDir, + RouterDir: routerDir, + ModelDir: modelDir, + UseDir: args.Use, + ClientDir: clientDir, + TemplateGenerator: generator.TemplateGenerator{ + OutputDir: args.OutDir, + Excludes: args.Excludes, + }, + ProjPackage: pkg, + Options: options, + HandlerByMethod: args.HandlerByMethod, + CmdType: args.CmdType, + IdlClientDir: util.SubDir(modelDir, pkgInfo.Package), + ForceClientDir: args.ForceClientDir, + BaseDomain: args.BaseDomain, + QueryEnumAsInt: args.QueryEnumAsInt, + SnakeStyleMiddleware: args.SnakeStyleMiddleware, + SortRouter: args.SortRouter, + ForceUpdateClient: args.ForceUpdateClient, + } + if args.ModelBackend != "" { + sg.Backend = meta.Backend(args.ModelBackend) + } + generator.SetDefaultTemplateConfig() + + err = sg.Generate(pkgInfo) + if err != nil { + logs.Errorf("generate package failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + if len(args.Use) != 0 { + err = sg.Persist() + if err != nil { + logs.Errorf("persist file failed within '-use' option: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + res := thriftgo_plugin.BuildErrorResponse(errors.New(meta.TheUseOptionMessage).Error()) + err = plugin.response(res) + if err != nil { + logs.Errorf("response failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + return nil + } + files, err := sg.GetFormatAndExcludedFiles() + if err != nil { + logs.Errorf("format file failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + res, err := plugin.GetResponse(files, sg.OutputDir) + if err != nil { + logs.Errorf("get response failed: %s", err.Error()) + return thriftgo_plugin.BuildErrorResponse(err.Error()) + } + + return res + +} + func (plugin *Plugin) Run() int { plugin.setLogger() args := &config.Argument{} From f7aeea6316d1ea5bb309df300ec0d9d1c1eed07a Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 17:59:36 +0800 Subject: [PATCH 03/31] chore: update thriftgo --- cmd/hz/thrift/plugin.go | 153 +++------------------------------------- 1 file changed, 11 insertions(+), 142 deletions(-) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 5ca31ae19..5367dad8d 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -44,16 +44,14 @@ type Plugin struct { rmTags []string } -func (plugin *Plugin) HandleRequest() *thriftgo_plugin.Response { +func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin.Request) *thriftgo_plugin.Response { plugin.setLogger() - args := &config.Argument{} - err := plugin.handleRequest() - if err != nil { - logs.Errorf("handle request failed: %s", err.Error()) - return thriftgo_plugin.BuildErrorResponse(err.Error()) - } + plugin.req = req + // init thriftgo utils + thriftgoUtil = golang.NewCodeUtils(backend.DummyLogFunc()) + thriftgoUtil.HandleOptions(req.GeneratorParameters) - args, err = plugin.parseArgs() + args, err := plugin.parseArgs() if err != nil { logs.Errorf("parse args failed: %s", err.Error()) return thriftgo_plugin.BuildErrorResponse(err.Error()) @@ -198,131 +196,19 @@ func (plugin *Plugin) Run() int { } }() - err := plugin.handleRequest() - if err != nil { - logs.Errorf("handle request failed: %s", err.Error()) - return meta.PluginError - } - - args, err = plugin.parseArgs() - if err != nil { - logs.Errorf("parse args failed: %s", err.Error()) - return meta.PluginError - } - plugin.rmTags = args.RmTags - if args.CmdType == meta.CmdModel { - // check tag options for model mode - CheckTagOption(plugin.args) - res, err := plugin.GetResponse(nil, args.OutDir) - if err != nil { - logs.Errorf("get response failed: %s", err.Error()) - return meta.PluginError - } - plugin.response(res) - if err != nil { - logs.Errorf("response failed: %s", err.Error()) - return meta.PluginError - } - return 0 - } - - err = plugin.initNameStyle() + data, err := ioutil.ReadAll(os.Stdin) if err != nil { - logs.Errorf("init naming style failed: %s", err.Error()) + logs.Errorf("read request failed: %s", err.Error()) return meta.PluginError } - - options := CheckTagOption(plugin.args) - - pkgInfo, err := plugin.getPackageInfo() + req, err := thriftgo_plugin.UnmarshalRequest(data) if err != nil { - logs.Errorf("get http package info failed: %s", err.Error()) + logs.Errorf("unmarshal request failed: %s", err.Error()) return meta.PluginError } - customPackageTemplate := args.CustomizePackage - pkg, err := args.GetGoPackage() - if err != nil { - logs.Errorf("get go package failed: %s", err.Error()) - return meta.PluginError - } - handlerDir, err := args.GetHandlerDir() - if err != nil { - logs.Errorf("get handler dir failed: %s", err.Error()) - return meta.PluginError - } - routerDir, err := args.GetRouterDir() - if err != nil { - logs.Errorf("get router dir failed: %s", err.Error()) - return meta.PluginError - } - modelDir, err := args.GetModelDir() - if err != nil { - logs.Errorf("get model dir failed: %s", err.Error()) - return meta.PluginError - } - clientDir, err := args.GetClientDir() - if err != nil { - logs.Errorf("get client dir failed: %s", err.Error()) - return meta.PluginError - } - sg := generator.HttpPackageGenerator{ - ConfigPath: customPackageTemplate, - HandlerDir: handlerDir, - RouterDir: routerDir, - ModelDir: modelDir, - UseDir: args.Use, - ClientDir: clientDir, - TemplateGenerator: generator.TemplateGenerator{ - OutputDir: args.OutDir, - Excludes: args.Excludes, - }, - ProjPackage: pkg, - Options: options, - HandlerByMethod: args.HandlerByMethod, - CmdType: args.CmdType, - IdlClientDir: util.SubDir(modelDir, pkgInfo.Package), - ForceClientDir: args.ForceClientDir, - BaseDomain: args.BaseDomain, - QueryEnumAsInt: args.QueryEnumAsInt, - SnakeStyleMiddleware: args.SnakeStyleMiddleware, - SortRouter: args.SortRouter, - ForceUpdateClient: args.ForceUpdateClient, - } - if args.ModelBackend != "" { - sg.Backend = meta.Backend(args.ModelBackend) - } - generator.SetDefaultTemplateConfig() + res := plugin.HandleRequest(args, req) - err = sg.Generate(pkgInfo) - if err != nil { - logs.Errorf("generate package failed: %s", err.Error()) - return meta.PluginError - } - if len(args.Use) != 0 { - err = sg.Persist() - if err != nil { - logs.Errorf("persist file failed within '-use' option: %s", err.Error()) - return meta.PluginError - } - res := thriftgo_plugin.BuildErrorResponse(errors.New(meta.TheUseOptionMessage).Error()) - err = plugin.response(res) - if err != nil { - logs.Errorf("response failed: %s", err.Error()) - return meta.PluginError - } - return 0 - } - files, err := sg.GetFormatAndExcludedFiles() - if err != nil { - logs.Errorf("format file failed: %s", err.Error()) - return meta.PluginError - } - res, err := plugin.GetResponse(files, sg.OutputDir) - if err != nil { - logs.Errorf("get response failed: %s", err.Error()) - return meta.PluginError - } err = plugin.response(res) if err != nil { logs.Errorf("response failed: %s", err.Error()) @@ -354,23 +240,6 @@ func (plugin *Plugin) recvVerboseLogger() string { return verboseLog } -func (plugin *Plugin) handleRequest() error { - data, err := ioutil.ReadAll(os.Stdin) - if err != nil { - return fmt.Errorf("read request failed: %s", err.Error()) - } - req, err := thriftgo_plugin.UnmarshalRequest(data) - if err != nil { - return fmt.Errorf("unmarshal request failed: %s", err.Error()) - } - plugin.req = req - // init thriftgo utils - thriftgoUtil = golang.NewCodeUtils(backend.DummyLogFunc()) - thriftgoUtil.HandleOptions(req.GeneratorParameters) - - return nil -} - func (plugin *Plugin) parseArgs() (*config.Argument, error) { if plugin.req == nil { return nil, fmt.Errorf("request is nil") From 4d0fa28fbfe605096db6abee1c8d2ac963123d89 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 18:22:38 +0800 Subject: [PATCH 04/31] chore: update thriftgo --- cmd/hz/sdk/hertz_sdk.go | 87 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 0919fd1b0..92bbb245a 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -1 +1,88 @@ package sdk + +import ( + "fmt" + "github.com/cloudwego/hertz/cmd/hz/config" + "github.com/cloudwego/hertz/cmd/hz/thrift" + "github.com/cloudwego/thriftgo/plugin" + "os/exec" + "strings" +) + +func RunHertzTool(wd string, plugins []plugin.SDKPlugin, kitexArgs ...string) error { + return nil +} + +type HertzSDKPlugin struct { + HertzParams []string + ThriftgoParams []string + Pwd string +} + +func (k *HertzSDKPlugin) Invoke(req *plugin.Request) (res *plugin.Response) { + r := thrift.Plugin{} + return r.HandleRequest(&config.Argument{}, req) +} + +func (k *HertzSDKPlugin) GetName() string { + return "kitex" +} + +func (k *HertzSDKPlugin) GetPluginParameters() []string { + return k.HertzParams +} + +func (k *HertzSDKPlugin) GetThriftgoParameters() []string { + return k.ThriftgoParams +} + +func GetHertzSDKPlugin(pwd string, rawHertzArgs []string) (*HertzSDKPlugin, error) { + // run as kitex + //err := args.ParseArgs(kitex.Version, pwd, rawHertzArgs) + //if err != nil { + // return nil, err + //} + + //out := new(bytes.Buffer) + //cmd, err := args.BuildCmd(out) + //if err != nil { + // return nil, err + //} + + hertzPlugin := &HertzSDKPlugin{} + + hertzPlugin.ThriftgoParams, hertzPlugin.HertzParams, err := ParseKitexCmd(cmd) + if err != nil { + return nil, err + } + hertzPlugin.Pwd = pwd + + return hertzPlugin, nil +} + + +func ParseHertzCmd(cmd *exec.Cmd) (thriftgoParams, hertzParams []string, err error) { + cmdArgs := cmd.Args + // thriftgo -r -o kitex_gen -g go:xxx -p kitex=xxxx -p otherplugin xxx.thrift + // ignore first argument, and remove -p kitex=xxxx + + thriftgoParams = []string{} + hertzParams = []string{} + if len(cmdArgs) < 1 { + return nil, nil, fmt.Errorf("cmd args too short: %s", cmdArgs) + } + + for i := 1; i < len(cmdArgs); i++ { + arg := cmdArgs[i] + if arg == "-p" && i+1 < len(cmdArgs) { + pluginArgs := cmdArgs[i+1] + if strings.HasPrefix(pluginArgs, "hertz") { + hertzParams = strings.Split(pluginArgs, ",") + i++ + continue + } + } + thriftgoParams = append(thriftgoParams, arg) + } + return thriftgoParams,hertzParams, nil +} From 21c87acc4901fb78630637d815b74a7bf1bf7d04 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 20:01:44 +0800 Subject: [PATCH 05/31] chore: update thriftgo --- cmd/hz/sdk/hertz_sdk.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 92bbb245a..df3abdd47 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -1,6 +1,7 @@ package sdk import ( + "bytes" "fmt" "github.com/cloudwego/hertz/cmd/hz/config" "github.com/cloudwego/hertz/cmd/hz/thrift" @@ -43,15 +44,15 @@ func GetHertzSDKPlugin(pwd string, rawHertzArgs []string) (*HertzSDKPlugin, erro // return nil, err //} - //out := new(bytes.Buffer) - //cmd, err := args.BuildCmd(out) - //if err != nil { - // return nil, err - //} + out := new(bytes.Buffer) + cmd, err := args.BuildCmd(out) + if err != nil { + return nil, err + } hertzPlugin := &HertzSDKPlugin{} - hertzPlugin.ThriftgoParams, hertzPlugin.HertzParams, err := ParseKitexCmd(cmd) + hertzPlugin.ThriftgoParams, hertzPlugin.HertzParams, err:= ParseHertzCmd(cmd) if err != nil { return nil, err } From 91032868b9120703049a934d05255e7df6a2b4e2 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 20:02:17 +0800 Subject: [PATCH 06/31] chore: update thriftgo --- cmd/hz/sdk/hertz_sdk.go | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index df3abdd47..beedb8a5e 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -1,17 +1,24 @@ package sdk import ( - "bytes" "fmt" "github.com/cloudwego/hertz/cmd/hz/config" "github.com/cloudwego/hertz/cmd/hz/thrift" "github.com/cloudwego/thriftgo/plugin" + "github.com/cloudwego/thriftgo/sdk" "os/exec" "strings" ) -func RunHertzTool(wd string, plugins []plugin.SDKPlugin, kitexArgs ...string) error { - return nil +func RunHertzTool(wd, cmdType string, plugins []plugin.SDKPlugin, hertzArgs ...string) error { + hertzPlugin, err := GetHertzSDKPlugin(wd, cmdType, hertzArgs) + if err != nil { + return err + } + s := []plugin.SDKPlugin{hertzPlugin} + s = append(s, plugins...) + + return sdk.RunThriftgoAsSDK(wd, s, hertzPlugin.GetThriftgoParameters()...) } type HertzSDKPlugin struct { @@ -37,22 +44,24 @@ func (k *HertzSDKPlugin) GetThriftgoParameters() []string { return k.ThriftgoParams } -func GetHertzSDKPlugin(pwd string, rawHertzArgs []string) (*HertzSDKPlugin, error) { +func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlugin, error) { // run as kitex //err := args.ParseArgs(kitex.Version, pwd, rawHertzArgs) //if err != nil { // return nil, err //} - out := new(bytes.Buffer) - cmd, err := args.BuildCmd(out) + c := config.NewArgument() + c.CmdType = cmdType + + cmd, err := config.BuildPluginCmd(c) if err != nil { return nil, err } hertzPlugin := &HertzSDKPlugin{} - hertzPlugin.ThriftgoParams, hertzPlugin.HertzParams, err:= ParseHertzCmd(cmd) + hertzPlugin.ThriftgoParams, hertzPlugin.HertzParams, err = ParseHertzCmd(cmd) if err != nil { return nil, err } @@ -61,7 +70,6 @@ func GetHertzSDKPlugin(pwd string, rawHertzArgs []string) (*HertzSDKPlugin, erro return hertzPlugin, nil } - func ParseHertzCmd(cmd *exec.Cmd) (thriftgoParams, hertzParams []string, err error) { cmdArgs := cmd.Args // thriftgo -r -o kitex_gen -g go:xxx -p kitex=xxxx -p otherplugin xxx.thrift @@ -85,5 +93,5 @@ func ParseHertzCmd(cmd *exec.Cmd) (thriftgoParams, hertzParams []string, err err } thriftgoParams = append(thriftgoParams, arg) } - return thriftgoParams,hertzParams, nil + return thriftgoParams, hertzParams, nil } From bc4c3072eb90129024a98ec0e7623a0107383371 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Fri, 7 Mar 2025 23:51:27 +0800 Subject: [PATCH 07/31] chore: update thriftgo --- cmd/hz/sdk/hertz_sdk.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index beedb8a5e..9956ea6c7 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -45,11 +45,6 @@ func (k *HertzSDKPlugin) GetThriftgoParameters() []string { } func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlugin, error) { - // run as kitex - //err := args.ParseArgs(kitex.Version, pwd, rawHertzArgs) - //if err != nil { - // return nil, err - //} c := config.NewArgument() c.CmdType = cmdType From 9f23f412ee67e720d29a83d3d68b27ed9cd25151 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sat, 8 Mar 2025 00:17:32 +0800 Subject: [PATCH 08/31] chore: update thriftgo --- cmd/hz/app/app.go | 4 ++++ cmd/hz/sdk/hertz_sdk.go | 36 +++++++++++++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/cmd/hz/app/app.go b/cmd/hz/app/app.go index bf2b620bb..a37da5d51 100644 --- a/cmd/hz/app/app.go +++ b/cmd/hz/app/app.go @@ -36,6 +36,10 @@ import ( // global args. MUST fork it when use var globalArgs = config.NewArgument() +func GetGlobalArgs() *config.Argument { + return globalArgs +} + func New(c *cli.Context) error { args, err := globalArgs.Parse(c, meta.CmdNew) if err != nil { diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 9956ea6c7..797e0f84e 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -1,11 +1,14 @@ package sdk import ( + "flag" "fmt" + "github.com/cloudwego/hertz/cmd/hz/app" "github.com/cloudwego/hertz/cmd/hz/config" "github.com/cloudwego/hertz/cmd/hz/thrift" "github.com/cloudwego/thriftgo/plugin" "github.com/cloudwego/thriftgo/sdk" + "github.com/urfave/cli/v2" "os/exec" "strings" ) @@ -44,12 +47,39 @@ func (k *HertzSDKPlugin) GetThriftgoParameters() []string { return k.ThriftgoParams } +func findCommon(client *cli.App, cmdType string) *cli.Command { + for _, cmd := range client.Commands { + if cmd.Name == cmdType { + return cmd + } + } + return nil +} + func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlugin, error) { + client := app.Init() + + c := findCommon(client, cmdType) + if c == nil { + return nil, fmt.Errorf("command not found: %s", cmdType) + } + + flagSet := flag.NewFlagSet("hz-parse", flag.ContinueOnError) - c := config.NewArgument() - c.CmdType = cmdType + for _, f := range c.Flags { + if err := f.Apply(flagSet); err != nil { + return nil, err + } + } + + ctx := cli.NewContext(client, flagSet, nil) + + args, err := app.GetGlobalArgs().Parse(ctx, cmdType) + if err != nil { + return nil, err + } - cmd, err := config.BuildPluginCmd(c) + cmd, err := config.BuildPluginCmd(args) if err != nil { return nil, err } From f221274997ba6f6df3d4ffd81ee3098fbc5ac163 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sat, 8 Mar 2025 00:24:54 +0800 Subject: [PATCH 09/31] chore: update thriftgo --- cmd/hz/protobuf/plugin.go | 2 +- cmd/hz/sdk/hertz_sdk.go | 9 +++++++-- cmd/hz/thrift/plugin.go | 1 - 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/hz/protobuf/plugin.go b/cmd/hz/protobuf/plugin.go index abb7616c4..c70dcc221 100644 --- a/cmd/hz/protobuf/plugin.go +++ b/cmd/hz/protobuf/plugin.go @@ -330,7 +330,7 @@ func (plugin *Plugin) fixModelPathAndPackage(pkg string) (impt, path string) { } path = util.ImportToPath(impt, "") // bugfix: impt may have "/" suffix - //impt = plugin.Package + "/" + impt + // impt = plugin.Package + "/" + impt impt = filepath.Join(plugin.Package, impt) if util.IsWindows() { impt = util.PathToImport(impt, "") diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 797e0f84e..4a970181e 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -3,14 +3,15 @@ package sdk import ( "flag" "fmt" + "os/exec" + "strings" + "github.com/cloudwego/hertz/cmd/hz/app" "github.com/cloudwego/hertz/cmd/hz/config" "github.com/cloudwego/hertz/cmd/hz/thrift" "github.com/cloudwego/thriftgo/plugin" "github.com/cloudwego/thriftgo/sdk" "github.com/urfave/cli/v2" - "os/exec" - "strings" ) func RunHertzTool(wd, cmdType string, plugins []plugin.SDKPlugin, hertzArgs ...string) error { @@ -72,6 +73,10 @@ func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlu } } + if err := flagSet.Parse(rawHertzArgs); err != nil { + return nil, err + } + ctx := cli.NewContext(client, flagSet, nil) args, err := app.GetGlobalArgs().Parse(ctx, cmdType) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 5367dad8d..c08884ca2 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -173,7 +173,6 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. } return res - } func (plugin *Plugin) Run() int { From 60ab4523174f05e932ada52f506a5e674041906a Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sat, 8 Mar 2025 00:35:08 +0800 Subject: [PATCH 10/31] chore: update thriftgo --- cmd/hz/sdk/hertz_sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 4a970181e..24aa59931 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -37,7 +37,7 @@ func (k *HertzSDKPlugin) Invoke(req *plugin.Request) (res *plugin.Response) { } func (k *HertzSDKPlugin) GetName() string { - return "kitex" + return "hz" } func (k *HertzSDKPlugin) GetPluginParameters() []string { From 66a686af013bada3dff5732d46926d484b950b2e Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sat, 8 Mar 2025 10:45:49 +0800 Subject: [PATCH 11/31] chore: update thriftgo --- cmd/hz/sdk/hertz_sdk.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 24aa59931..bfae707d0 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -1,3 +1,17 @@ +// Copyright 2025 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package sdk import ( From c4a0f8ffe1ef833b027502ec54836d01348e25c8 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 00:22:34 +0800 Subject: [PATCH 12/31] feat: support hz sdk --- cmd/hz/config/argument.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/hz/config/argument.go b/cmd/hz/config/argument.go index 2f5f5f7f4..9e84f7bb8 100644 --- a/cmd/hz/config/argument.go +++ b/cmd/hz/config/argument.go @@ -18,7 +18,7 @@ package config import ( "fmt" - "os" + "github.com/cloudwego/thriftgo/utils/dir_utils" "path/filepath" "strings" @@ -149,7 +149,7 @@ func (arg *Argument) UpdateByManifest(m *meta.Manifest) { // checkPath sets the project path and verifies that the model、handler、router and client path is compliant func (arg *Argument) checkPath() error { - dir, err := os.Getwd() + dir, err := dir_utils.Getwd() if err != nil { return fmt.Errorf("get current path failed: %s", err) } From 08695e9571d9e4b53304feca5bc1b76377bb4082 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 00:42:26 +0800 Subject: [PATCH 13/31] feat: support hz sdk --- cmd/hz/sdk/hertz_sdk.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index bfae707d0..54ff5009a 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -43,11 +43,13 @@ type HertzSDKPlugin struct { HertzParams []string ThriftgoParams []string Pwd string + Args *config.Argument +} } func (k *HertzSDKPlugin) Invoke(req *plugin.Request) (res *plugin.Response) { r := thrift.Plugin{} - return r.HandleRequest(&config.Argument{}, req) + return r.HandleRequest(k.Args, req) } func (k *HertzSDKPlugin) GetName() string { @@ -106,6 +108,8 @@ func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlu hertzPlugin := &HertzSDKPlugin{} hertzPlugin.ThriftgoParams, hertzPlugin.HertzParams, err = ParseHertzCmd(cmd) + hertzPlugin.Args = args + if err != nil { return nil, err } From b3919ec61e3c099326871b28d40c3b725e2b9b03 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 00:59:22 +0800 Subject: [PATCH 14/31] feat: support hz sdk --- cmd/hz/thrift/plugin.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index c08884ca2..798d5a2cc 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -51,12 +51,6 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. thriftgoUtil = golang.NewCodeUtils(backend.DummyLogFunc()) thriftgoUtil.HandleOptions(req.GeneratorParameters) - args, err := plugin.parseArgs() - if err != nil { - logs.Errorf("parse args failed: %s", err.Error()) - return thriftgo_plugin.BuildErrorResponse(err.Error()) - } - plugin.rmTags = args.RmTags if args.CmdType == meta.CmdModel { // check tag options for model mode @@ -74,7 +68,7 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. return nil } - err = plugin.initNameStyle() + err := plugin.initNameStyle() if err != nil { logs.Errorf("init naming style failed: %s", err.Error()) return thriftgo_plugin.BuildErrorResponse(err.Error()) @@ -206,6 +200,12 @@ func (plugin *Plugin) Run() int { return meta.PluginError } + args, err = plugin.parseArgs() + if err != nil { + logs.Errorf("parse args failed: %s", err.Error()) + return meta.PluginError + } + res := plugin.HandleRequest(args, req) err = plugin.response(res) From 43f69ef373b9a50da2c180e63a3d165e912c14f9 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 01:04:33 +0800 Subject: [PATCH 15/31] feat: support hz sdk --- cmd/hz/config/argument.go | 3 ++- cmd/hz/sdk/hertz_sdk.go | 1 - cmd/hz/thrift/plugin.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/hz/config/argument.go b/cmd/hz/config/argument.go index 9e84f7bb8..d213a17cf 100644 --- a/cmd/hz/config/argument.go +++ b/cmd/hz/config/argument.go @@ -18,10 +18,11 @@ package config import ( "fmt" - "github.com/cloudwego/thriftgo/utils/dir_utils" "path/filepath" "strings" + "github.com/cloudwego/thriftgo/utils/dir_utils" + "github.com/cloudwego/hertz/cmd/hz/meta" "github.com/cloudwego/hertz/cmd/hz/util" "github.com/cloudwego/hertz/cmd/hz/util/logs" diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 54ff5009a..abe6657dc 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -45,7 +45,6 @@ type HertzSDKPlugin struct { Pwd string Args *config.Argument } -} func (k *HertzSDKPlugin) Invoke(req *plugin.Request) (res *plugin.Response) { r := thrift.Plugin{} diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 798d5a2cc..7fc00ed58 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -50,7 +50,7 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. // init thriftgo utils thriftgoUtil = golang.NewCodeUtils(backend.DummyLogFunc()) thriftgoUtil.HandleOptions(req.GeneratorParameters) - + plugin.args = args plugin.rmTags = args.RmTags if args.CmdType == meta.CmdModel { // check tag options for model mode From e2bb31d4fffb36e51ddbf5750bfdc1f0856808eb Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 01:11:19 +0800 Subject: [PATCH 16/31] feat: support hz sdk --- cmd/hz/thrift/plugin.go | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 7fc00ed58..72f2115db 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -60,12 +60,7 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. logs.Errorf("get response failed: %s", err.Error()) return thriftgo_plugin.BuildErrorResponse(err.Error()) } - plugin.response(res) - if err != nil { - logs.Errorf("response failed: %s", err.Error()) - return thriftgo_plugin.BuildErrorResponse(err.Error()) - } - return nil + return res } err := plugin.initNameStyle() @@ -148,12 +143,7 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. return thriftgo_plugin.BuildErrorResponse(err.Error()) } res := thriftgo_plugin.BuildErrorResponse(errors.New(meta.TheUseOptionMessage).Error()) - err = plugin.response(res) - if err != nil { - logs.Errorf("response failed: %s", err.Error()) - return thriftgo_plugin.BuildErrorResponse(err.Error()) - } - return nil + return res } files, err := sg.GetFormatAndExcludedFiles() if err != nil { From 7c1234e5168f2b017d31714c48f329914e18a04d Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 12:39:51 +0800 Subject: [PATCH 17/31] feat: support hz sdk --- cmd/hz/sdk/hertz_sdk.go | 69 +++++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 10 deletions(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index abe6657dc..070069ae8 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -18,8 +18,12 @@ import ( "flag" "fmt" "os/exec" + "path/filepath" "strings" + "github.com/cloudwego/hertz/cmd/hz/meta" + "github.com/cloudwego/hertz/cmd/hz/util" + "github.com/cloudwego/hertz/cmd/hz/app" "github.com/cloudwego/hertz/cmd/hz/config" "github.com/cloudwego/hertz/cmd/hz/thrift" @@ -29,14 +33,59 @@ import ( ) func RunHertzTool(wd, cmdType string, plugins []plugin.SDKPlugin, hertzArgs ...string) error { - hertzPlugin, err := GetHertzSDKPlugin(wd, cmdType, hertzArgs) + hertzPlugin, args, err := GetHertzSDKPlugin(wd, cmdType, hertzArgs) if err != nil { return err } s := []plugin.SDKPlugin{hertzPlugin} s = append(s, plugins...) - return sdk.RunThriftgoAsSDK(wd, s, hertzPlugin.GetThriftgoParameters()...) + manifest := new(meta.Manifest) + switch cmdType { + case meta.CmdNew: + exist, err := util.PathExist(filepath.Join(args.OutDir, meta.ManifestFile)) + if err != nil { + return err + } + + if exist && !args.ForceNew { + return fmt.Errorf("the current is already a hertz project, if you want to regenerate it you can specify \"-force\"") + } + + err = app.GenerateLayout(args) + if err != nil { + return err + } + case meta.CmdUpdate: + err = manifest.InitAndValidate(args.OutDir) + if err != nil { + return err + } + // update argument by ".hz", can automatically get "handler_dir"/"model_dir"/"router_dir" + args.UpdateByManifest(manifest) + } + + err = sdk.RunThriftgoAsSDK(wd, s, hertzPlugin.GetThriftgoParameters()...) + if err != nil { + return err + } + + switch cmdType { + case meta.CmdNew: + args.InitManifest(manifest) + err = manifest.Persist(args.OutDir) + if err != nil { + return fmt.Errorf("persist manifest failed: %v", err) + } + case meta.CmdUpdate: + args.UpdateManifest(manifest) + err = manifest.Persist(args.OutDir) + if err != nil { + return cli.Exit(fmt.Errorf("persist manifest failed: %v", err), meta.PersistError) + } + } + + return nil } type HertzSDKPlugin struct { @@ -72,36 +121,36 @@ func findCommon(client *cli.App, cmdType string) *cli.Command { return nil } -func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlugin, error) { +func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlugin, *config.Argument, error) { client := app.Init() c := findCommon(client, cmdType) if c == nil { - return nil, fmt.Errorf("command not found: %s", cmdType) + return nil, nil, fmt.Errorf("command not found: %s", cmdType) } flagSet := flag.NewFlagSet("hz-parse", flag.ContinueOnError) for _, f := range c.Flags { if err := f.Apply(flagSet); err != nil { - return nil, err + return nil, nil, err } } if err := flagSet.Parse(rawHertzArgs); err != nil { - return nil, err + return nil, nil, err } ctx := cli.NewContext(client, flagSet, nil) args, err := app.GetGlobalArgs().Parse(ctx, cmdType) if err != nil { - return nil, err + return nil, nil, err } cmd, err := config.BuildPluginCmd(args) if err != nil { - return nil, err + return nil, nil, err } hertzPlugin := &HertzSDKPlugin{} @@ -110,11 +159,11 @@ func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlu hertzPlugin.Args = args if err != nil { - return nil, err + return nil, nil, err } hertzPlugin.Pwd = pwd - return hertzPlugin, nil + return hertzPlugin, args, nil } func ParseHertzCmd(cmd *exec.Cmd) (thriftgoParams, hertzParams []string, err error) { From b65c8309b5a7cf0f452053f58fbced3e7c4099b9 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 22:48:48 +0800 Subject: [PATCH 18/31] feat: support hz sdk --- cmd/hz/sdk/hertz_sdk.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 070069ae8..848933b58 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -67,7 +67,9 @@ func RunHertzTool(wd, cmdType string, plugins []plugin.SDKPlugin, hertzArgs ...s err = sdk.RunThriftgoAsSDK(wd, s, hertzPlugin.GetThriftgoParameters()...) if err != nil { - return err + if !strings.Contains(err.Error(), meta.TheUseOptionMessage) { + return err + } } switch cmdType { From 5831eadfcc76f65e0a055ebeed5e8dc280c09378 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 22:49:10 +0800 Subject: [PATCH 19/31] feat: support hz sdk --- internal/tagexpr/spec_func.go | 2 +- internal/tagexpr/spec_operand.go | 4 ++-- internal/tagexpr/spec_selector.go | 2 +- internal/tagexpr/tagexpr.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/tagexpr/spec_func.go b/internal/tagexpr/spec_func.go index 8e6291da8..78be29a97 100644 --- a/internal/tagexpr/spec_func.go +++ b/internal/tagexpr/spec_func.go @@ -59,7 +59,7 @@ func RegFunc(funcName string, fn func(...interface{}) interface{}, force ...bool return nil } -func (p *Expr) parseFuncSign(funcName string, expr *string) (boolOpposite *bool, signOpposite *bool, args []ExprNode, found bool) { +func (p *Expr) parseFuncSign(funcName string, expr *string) (boolOpposite, signOpposite *bool, args []ExprNode, found bool) { prefix := funcName + "(" length := len(funcName) last, boolOpposite, signOpposite := getBoolAndSignOpposite(expr) diff --git a/internal/tagexpr/spec_operand.go b/internal/tagexpr/spec_operand.go index b14b05515..e94ea0056 100644 --- a/internal/tagexpr/spec_operand.go +++ b/internal/tagexpr/spec_operand.go @@ -212,7 +212,7 @@ func readVariableExprNode(expr *string) ExprNode { } } -func getBoolAndSignOpposite(expr *string) (last string, boolOpposite *bool, signOpposite *bool) { +func getBoolAndSignOpposite(expr *string) (last string, boolOpposite, signOpposite *bool) { last, boolOpposite = getOpposite(expr, "!") last = strings.TrimLeft(last, "+") last, signOpposite = getOpposite(&last, "-") @@ -305,7 +305,7 @@ func toFloat64(i interface{}, tryParse bool) (float64, bool) { return v, ok } -func realValue(v interface{}, boolOpposite *bool, signOpposite *bool) interface{} { +func realValue(v interface{}, boolOpposite, signOpposite *bool) interface{} { if boolOpposite != nil { bol := FakeBool(v) if *boolOpposite { diff --git a/internal/tagexpr/spec_selector.go b/internal/tagexpr/spec_selector.go index 7e00990b1..bc4860d5f 100644 --- a/internal/tagexpr/spec_selector.go +++ b/internal/tagexpr/spec_selector.go @@ -59,7 +59,7 @@ func (p *Expr) readSelectorExprNode(expr *string) ExprNode { var selectorRegexp = regexp.MustCompile(`^([\!\+\-]*)(\([ \t]*[A-Za-z_]+[A-Za-z0-9_\.]*[ \t]*\))?(\$)([\)\[\],\+\-\*\/%><\|&!=\^ \t\\]|$)`) -func findSelector(expr *string) (field string, name string, subSelector []string, boolOpposite, signOpposite *bool, found bool) { +func findSelector(expr *string) (field, name string, subSelector []string, boolOpposite, signOpposite *bool, found bool) { raw := *expr a := selectorRegexp.FindAllStringSubmatch(raw, -1) if len(a) != 1 { diff --git a/internal/tagexpr/tagexpr.go b/internal/tagexpr/tagexpr.go index 9b14576e3..fbbc2fed9 100644 --- a/internal/tagexpr/tagexpr.go +++ b/internal/tagexpr/tagexpr.go @@ -517,7 +517,7 @@ func (s *structVM) mergeSubStructVM(field *fieldVM, sub *structVM) { } } -func (s *structVM) newChildField(parent *fieldVM, child *fieldVM, toBind bool) *fieldVM { +func (s *structVM) newChildField(parent, child *fieldVM, toBind bool) *fieldVM { f := &fieldVM{ structField: child.structField, exprs: make(map[string]*Expr, len(child.exprs)), From 2256067ba37cf42969508591f50eb629780630e6 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Sun, 9 Mar 2025 23:00:35 +0800 Subject: [PATCH 20/31] feat: support hz sdk --- cmd/hz/sdk/hertz_sdk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 848933b58..57d9dfb4c 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -131,7 +131,7 @@ func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlu return nil, nil, fmt.Errorf("command not found: %s", cmdType) } - flagSet := flag.NewFlagSet("hz-parse", flag.ContinueOnError) + flagSet := flag.NewFlagSet(cmdType+"-parse", flag.ContinueOnError) for _, f := range c.Flags { if err := f.Apply(flagSet); err != nil { From d552c83785c4f94173651eb83ab444a8146c4aeb Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 02:06:31 +0800 Subject: [PATCH 21/31] feat: support hz sdk --- cmd/hz/thrift/plugin.go | 8 ++++---- cmd/hz/thrift/plugin_test.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 72f2115db..866a43d6a 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -190,7 +190,7 @@ func (plugin *Plugin) Run() int { return meta.PluginError } - args, err = plugin.parseArgs() + args, err = plugin.parseArgs(req) if err != nil { logs.Errorf("parse args failed: %s", err.Error()) return meta.PluginError @@ -229,12 +229,12 @@ func (plugin *Plugin) recvVerboseLogger() string { return verboseLog } -func (plugin *Plugin) parseArgs() (*config.Argument, error) { - if plugin.req == nil { +func (plugin *Plugin) parseArgs(req *thriftgo_plugin.Request) (*config.Argument, error) { + if req == nil { return nil, fmt.Errorf("request is nil") } args := new(config.Argument) - err := args.Unpack(plugin.req.PluginParameters) + err := args.Unpack(req.PluginParameters) if err != nil { logs.Errorf("unpack args failed: %s", err.Error()) } diff --git a/cmd/hz/thrift/plugin_test.go b/cmd/hz/thrift/plugin_test.go index 1cd4d8b67..e0e573d81 100644 --- a/cmd/hz/thrift/plugin_test.go +++ b/cmd/hz/thrift/plugin_test.go @@ -41,7 +41,7 @@ func TestRun(t *testing.T) { plu.req = req - _, err = plu.parseArgs() + _, err = plu.parseArgs(req) if err != nil { t.Fatal(err) } From 815b45d65362c4796baada7dab7ed783f325f4b4 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 10:44:02 +0800 Subject: [PATCH 22/31] feat: support hz sdk --- cmd/hz/app/app.go | 2 +- cmd/hz/config/cmd.go | 10 +++++++--- cmd/hz/sdk/hertz_sdk.go | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmd/hz/app/app.go b/cmd/hz/app/app.go index a37da5d51..7f3f1812d 100644 --- a/cmd/hz/app/app.go +++ b/cmd/hz/app/app.go @@ -422,7 +422,7 @@ func TriggerPlugin(args *config.Argument) error { if len(args.IdlPaths) == 0 { return nil } - cmd, err := config.BuildPluginCmd(args) + cmd, err := config.BuildPluginCmd(args, false) if err != nil { return fmt.Errorf("build plugin command failed: %v", err) } diff --git a/cmd/hz/config/cmd.go b/cmd/hz/config/cmd.go index fc83c57c5..11a6112c2 100644 --- a/cmd/hz/config/cmd.go +++ b/cmd/hz/config/cmd.go @@ -29,7 +29,7 @@ import ( "github.com/cloudwego/hertz/cmd/hz/util/logs" ) -func lookupTool(idlType string) (string, error) { +func lookupTool(idlType string, isSDK bool) (string, error) { tool := meta.TpCompilerThrift if idlType == meta.IdlProto { tool = meta.TpCompilerProto @@ -50,6 +50,10 @@ func lookupTool(idlType string) (string, error) { return "", fmt.Errorf("check '%s' path error: %v", path, err) } + if isSDK { + return path, nil + } + if !isExist { if tool == meta.TpCompilerThrift { // If thriftgo does not exist, the latest version will be installed automatically. @@ -87,7 +91,7 @@ func link(src, dst string) error { return nil } -func BuildPluginCmd(args *Argument) (*exec.Cmd, error) { +func BuildPluginCmd(args *Argument, isSdk bool) (*exec.Cmd, error) { exe, err := os.Executable() if err != nil { return nil, fmt.Errorf("failed to detect current executable, err: %v", err) @@ -99,7 +103,7 @@ func BuildPluginCmd(args *Argument) (*exec.Cmd, error) { } kas := strings.Join(argPacks, ",") - path, err := lookupTool(args.IdlType) + path, err := lookupTool(args.IdlType, isSdk) if err != nil { return nil, err } diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 57d9dfb4c..9f93610c6 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -150,7 +150,7 @@ func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlu return nil, nil, err } - cmd, err := config.BuildPluginCmd(args) + cmd, err := config.BuildPluginCmd(args, true) if err != nil { return nil, nil, err } From 04696a6dbbe0e8d83a7747e1476cc1ec78de71ba Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 11:49:30 +0800 Subject: [PATCH 23/31] feat: support hz sdk --- cmd/hz/app/app.go | 2 +- cmd/hz/config/cmd.go | 32 +++++++++++++++++++++++--------- cmd/hz/sdk/hertz_sdk.go | 2 +- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/cmd/hz/app/app.go b/cmd/hz/app/app.go index 7f3f1812d..a37da5d51 100644 --- a/cmd/hz/app/app.go +++ b/cmd/hz/app/app.go @@ -422,7 +422,7 @@ func TriggerPlugin(args *config.Argument) error { if len(args.IdlPaths) == 0 { return nil } - cmd, err := config.BuildPluginCmd(args, false) + cmd, err := config.BuildPluginCmd(args) if err != nil { return fmt.Errorf("build plugin command failed: %v", err) } diff --git a/cmd/hz/config/cmd.go b/cmd/hz/config/cmd.go index 11a6112c2..ec3836227 100644 --- a/cmd/hz/config/cmd.go +++ b/cmd/hz/config/cmd.go @@ -29,7 +29,7 @@ import ( "github.com/cloudwego/hertz/cmd/hz/util/logs" ) -func lookupTool(idlType string, isSDK bool) (string, error) { +func lookupTool(idlType string) (string, error) { tool := meta.TpCompilerThrift if idlType == meta.IdlProto { tool = meta.TpCompilerProto @@ -50,10 +50,6 @@ func lookupTool(idlType string, isSDK bool) (string, error) { return "", fmt.Errorf("check '%s' path error: %v", path, err) } - if isSDK { - return path, nil - } - if !isExist { if tool == meta.TpCompilerThrift { // If thriftgo does not exist, the latest version will be installed automatically. @@ -91,7 +87,8 @@ func link(src, dst string) error { return nil } -func BuildPluginCmd(args *Argument, isSdk bool) (*exec.Cmd, error) { +// BuildSdkPluginCmd build cmd for hz plugin sdk +func BuildSdkPluginCmd(args *Argument) (*exec.Cmd, error) { exe, err := os.Executable() if err != nil { return nil, fmt.Errorf("failed to detect current executable, err: %v", err) @@ -102,15 +99,32 @@ func BuildPluginCmd(args *Argument, isSdk bool) (*exec.Cmd, error) { return nil, err } kas := strings.Join(argPacks, ",") + return wrapCmd(args, "", exe, kas) +} - path, err := lookupTool(args.IdlType, isSdk) +// BuildPluginCmd build cmd for hz plugin cmd +func BuildPluginCmd(args *Argument) (*exec.Cmd, error) { + exe, err := os.Executable() + if err != nil { + return nil, fmt.Errorf("failed to detect current executable, err: %v", err) + } + + argPacks, err := args.Pack() if err != nil { return nil, err } - cmd := &exec.Cmd{ - Path: path, + kas := strings.Join(argPacks, ",") + + path, err := lookupTool(args.IdlType) + if err != nil { + return nil, err } + return wrapCmd(args, path, exe, kas) +} + +func wrapCmd(args *Argument, path, exe, kas string) (*exec.Cmd, error) { + cmd := &exec.Cmd{Path: path} if args.IdlType == meta.IdlThrift { // thriftgo os.Setenv(meta.EnvPluginMode, meta.ThriftPluginName) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 9f93610c6..3f6ae1be2 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -150,7 +150,7 @@ func GetHertzSDKPlugin(pwd, cmdType string, rawHertzArgs []string) (*HertzSDKPlu return nil, nil, err } - cmd, err := config.BuildPluginCmd(args, true) + cmd, err := config.BuildSdkPluginCmd(args) if err != nil { return nil, nil, err } From be257c9cbd82b4d96de052a25e21b4430c34a79c Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 12:04:15 +0800 Subject: [PATCH 24/31] feat: support hz sdk --- cmd/hz/sdk/hertz_sdk.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/hz/sdk/hertz_sdk.go b/cmd/hz/sdk/hertz_sdk.go index 3f6ae1be2..ac48e90c3 100644 --- a/cmd/hz/sdk/hertz_sdk.go +++ b/cmd/hz/sdk/hertz_sdk.go @@ -32,6 +32,7 @@ import ( "github.com/urfave/cli/v2" ) +// RunHertzTool Run hz SDK func RunHertzTool(wd, cmdType string, plugins []plugin.SDKPlugin, hertzArgs ...string) error { hertzPlugin, args, err := GetHertzSDKPlugin(wd, cmdType, hertzArgs) if err != nil { From 2ed77fee2c5100139f98759792309967c7527644 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 19:07:12 +0800 Subject: [PATCH 25/31] feat: update wdf --- cmd/hz/util/fs.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/hz/util/fs.go b/cmd/hz/util/fs.go index e52aea294..b858b308b 100644 --- a/cmd/hz/util/fs.go +++ b/cmd/hz/util/fs.go @@ -17,6 +17,7 @@ package util import ( + "github.com/cloudwego/thriftgo/utils/dir_utils" "os" "path/filepath" ) @@ -38,7 +39,7 @@ func RelativePath(path string) (string, error) { if err != nil { return "", err } - cwd, err := os.Getwd() + cwd, err := dir_utils.Getwd() if err != nil { return "", err } From cca5a91b70ee0421f637765b561d4df0b469f26a Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 19:11:23 +0800 Subject: [PATCH 26/31] feat: update wd --- cmd/hz/util/fs.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cmd/hz/util/fs.go b/cmd/hz/util/fs.go index b858b308b..e52aea294 100644 --- a/cmd/hz/util/fs.go +++ b/cmd/hz/util/fs.go @@ -17,7 +17,6 @@ package util import ( - "github.com/cloudwego/thriftgo/utils/dir_utils" "os" "path/filepath" ) @@ -39,7 +38,7 @@ func RelativePath(path string) (string, error) { if err != nil { return "", err } - cwd, err := dir_utils.Getwd() + cwd, err := os.Getwd() if err != nil { return "", err } From d5803bad612949c74c0091822c9a993430215190 Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 19:32:34 +0800 Subject: [PATCH 27/31] feat: update wd --- cmd/hz/thrift/plugin.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index 866a43d6a..f5db23e83 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -150,6 +150,11 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. logs.Errorf("format file failed: %s", err.Error()) return thriftgo_plugin.BuildErrorResponse(err.Error()) } + + for _, f := range files { + fmt.Fprintf(os.Stderr, f.Path, sg.OutputDir) + } + res, err := plugin.GetResponse(files, sg.OutputDir) if err != nil { logs.Errorf("get response failed: %s", err.Error()) From 46dfb2a17a049ab84fea01c5cccaaa0dde404efc Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Mon, 10 Mar 2025 20:05:19 +0800 Subject: [PATCH 28/31] feat: update wd --- cmd/hz/config/argument.go | 3 ++- cmd/hz/thrift/plugin.go | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/cmd/hz/config/argument.go b/cmd/hz/config/argument.go index d213a17cf..15f0c920e 100644 --- a/cmd/hz/config/argument.go +++ b/cmd/hz/config/argument.go @@ -158,8 +158,9 @@ func (arg *Argument) checkPath() error { if arg.OutDir == "" { arg.OutDir = dir } + if !filepath.IsAbs(arg.OutDir) { - ap := filepath.Join(arg.Cwd, arg.OutDir) + ap, _ := filepath.Abs(arg.OutDir) arg.OutDir = ap } if arg.ModelDir != "" && filepath.IsAbs(arg.ModelDir) { diff --git a/cmd/hz/thrift/plugin.go b/cmd/hz/thrift/plugin.go index f5db23e83..5640811e1 100644 --- a/cmd/hz/thrift/plugin.go +++ b/cmd/hz/thrift/plugin.go @@ -151,10 +151,6 @@ func (plugin *Plugin) HandleRequest(args *config.Argument, req *thriftgo_plugin. return thriftgo_plugin.BuildErrorResponse(err.Error()) } - for _, f := range files { - fmt.Fprintf(os.Stderr, f.Path, sg.OutputDir) - } - res, err := plugin.GetResponse(files, sg.OutputDir) if err != nil { logs.Errorf("get response failed: %s", err.Error()) From 84b6f9e7fbaf4fbb6b1024c6af35f411c39689aa Mon Sep 17 00:00:00 2001 From: "lilong.21" Date: Thu, 10 Jul 2025 12:24:12 +0800 Subject: [PATCH 29/31] fix hz abspath --- cmd/hz/config/argument.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmd/hz/config/argument.go b/cmd/hz/config/argument.go index 15f0c920e..bb8ca75f1 100644 --- a/cmd/hz/config/argument.go +++ b/cmd/hz/config/argument.go @@ -154,6 +154,14 @@ func (arg *Argument) checkPath() error { if err != nil { return fmt.Errorf("get current path failed: %s", err) } + + if !filepath.IsAbs(dir) { + dir, err = filepath.Abs(dir) + if err != nil { + return fmt.Errorf("get abs path failed: %s", err) + } + } + arg.Cwd = dir if arg.OutDir == "" { arg.OutDir = dir From ff4b4e0acd5ed843574a49edd775dfb43e994ae5 Mon Sep 17 00:00:00 2001 From: kinggo Date: Sun, 14 Dec 2025 17:42:42 +0800 Subject: [PATCH 30/31] Rename Protoc plugin constant to 'protoc-gen-rgo' --- cmd/hz/meta/const.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/hz/meta/const.go b/cmd/hz/meta/const.go index a696be8e7..396e0dd33 100644 --- a/cmd/hz/meta/const.go +++ b/cmd/hz/meta/const.go @@ -55,7 +55,7 @@ const ( // hz Plugins const ( - ProtocPluginName = "protoc-gen-hertz" + ProtocPluginName = "protoc-gen-rgo" ThriftPluginName = "thrift-gen-hertz" ) From f600609665c7cc1ceb8df98d6f9fca8e3bb60a71 Mon Sep 17 00:00:00 2001 From: kinggo Date: Sun, 14 Dec 2025 17:43:40 +0800 Subject: [PATCH 31/31] Replace Hertz plugin with RGO plugin in cmd.go --- cmd/hz/config/cmd.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/hz/config/cmd.go b/cmd/hz/config/cmd.go index ec3836227..522b1c36c 100644 --- a/cmd/hz/config/cmd.go +++ b/cmd/hz/config/cmd.go @@ -162,9 +162,9 @@ func wrapCmd(args *Argument, path, exe, kas string) (*exec.Cmd, error) { cmd.Args = append(cmd.Args, "-I", filepath.Dir(inc)) } cmd.Args = append(cmd.Args, - "--plugin=protoc-gen-hertz="+exe, - "--hertz_out="+args.OutDir, - "--hertz_opt="+kas, + "--plugin=protoc-gen-rgo="+exe, + "--rgo_out="+args.OutDir, + "--rgo_opt="+kas, ) for _, p := range args.ProtobufPlugins { pluginParams := strings.Split(p, ":")