Help us shape the future of Go! Take the 2026 Go Developer Survey

config

package
v0.9.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2026 License: Apache-2.0 Imports: 10 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildPluginCmd

func BuildPluginCmd(args *Argument) (*exec.Cmd, error)

BuildPluginCmd constructs the protoc/thriftgo command that invokes the current hz binary as a plugin. The hz binary re-enters as a plugin via PluginMode() (detected by EnvPluginMode). Arguments are serialized via PackArgs and passed as comma-separated key=value pairs.

func IdlTypeToCompiler

func IdlTypeToCompiler(idlType string) (string, error)

Types

type Argument

type Argument struct {
	// Mode              meta.Mode // operating mode(0-compiler, 1-plugin)
	CmdType        string // command type
	Verbose        bool   // print verbose log
	Cwd            string // execution path
	OutDir         string // output path
	HandlerDir     string // handler path
	ModelDir       string // model path
	RouterDir      string // router path
	ClientDir      string // client path
	BaseDomain     string // request domain
	ForceClientDir string // client dir (not use namespace as a subpath)

	IdlType       string   // idl type
	IdlPaths      []string // master idl path
	RawOptPkg     []string // user-specified package import path
	OptPkgMap     map[string]string
	Includes      []string
	PkgPrefix     string
	TrimGoPackage string // trim go_package for protobuf, avoid to generate multiple directory

	Gopath      string // $GOPATH
	Gosrc       string // $GOPATH/src
	Gomod       string
	Gopkg       string // $GOPATH/src/{{gopkg}}
	ServiceName string // service name
	Use         string
	NeedGoMod   bool

	JSONEnumStr          bool
	QueryEnumAsInt       bool
	UnsetOmitempty       bool
	ProtobufCamelJSONTag bool
	ProtocOptions        []string // options to pass through to protoc
	ThriftOptions        []string // options to pass through to thriftgo for go flag
	ProtobufPlugins      []string
	ThriftPlugins        []string
	SnakeName            bool
	RmTags               []string
	Excludes             []string
	NoRecurse            bool
	HandlerByMethod      bool
	ForceNew             bool
	ForceUpdateClient    bool
	SnakeStyleMiddleware bool
	EnableExtends        bool
	SortRouter           bool

	// client flag
	EnableClientOptional bool

	CustomizeLayout     string
	CustomizeLayoutData string
	CustomizePackage    string
	ModelBackend        string
}

func NewArgument

func NewArgument() *Argument

func (*Argument) Fork

func (arg *Argument) Fork() *Argument

Fork creates a deep copy of the argument. This is necessary because globalArgs is shared across CLI commands and its slice/map fields would otherwise be mutated.

func (*Argument) GetClientDir

func (arg *Argument) GetClientDir() (string, error)

func (*Argument) GetGoPackage

func (arg *Argument) GetGoPackage() (string, error)

func (*Argument) GetHandlerDir

func (arg *Argument) GetHandlerDir() (string, error)

func (*Argument) GetModelDir

func (arg *Argument) GetModelDir() (string, error)

func (*Argument) GetRouterDir

func (arg *Argument) GetRouterDir() (string, error)

func (*Argument) GetThriftgoOptions

func (arg *Argument) GetThriftgoOptions() (string, error)

GetThriftgoOptions builds the thriftgo "-g go:..." option string. It starts with default options (reserve_comments, no auto json tags) and appends user-specified options plus the computed package prefix.

func (*Argument) InitManifest added in v0.6.0

func (arg *Argument) InitManifest(m *meta.Manifest)

func (*Argument) IsNew added in v0.6.0

func (arg *Argument) IsNew() bool

func (*Argument) IsUpdate

func (arg *Argument) IsUpdate() bool

func (*Argument) ModelOutDir

func (arg *Argument) ModelOutDir() string

func (*Argument) ModelPackagePrefix

func (arg *Argument) ModelPackagePrefix() (string, error)

ModelPackagePrefix returns the Go import path prefix for generated model packages. This is passed to thriftgo so it generates import paths matching our output structure.

func (*Argument) Pack

func (arg *Argument) Pack() ([]string, error)

Pack serializes the argument to a string list for passing through the protoc/thriftgo plugin interface (see util.PackArgs).

func (*Argument) Parse

func (arg *Argument) Parse(c *cli.Context, cmd string) (*Argument, error)

Parse initializes a new argument based on its own information

func (*Argument) Unpack

func (arg *Argument) Unpack(data []string) error

func (*Argument) UpdateByManifest added in v0.6.0

func (arg *Argument) UpdateByManifest(m *meta.Manifest)

func (*Argument) UpdateManifest added in v0.6.0

func (arg *Argument) UpdateManifest(m *meta.Manifest)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL