Documentation ¶
Overview ¶
Package cmdopt 用于创建子命令功能的命令行
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CmdOpt ¶
type CmdOpt interface { FlagSet // New 注册一条新的子命令 // // name 为子命令的名称,必须唯一; // do 为该条子命令执行的函数体; // usage 为该条子命令的帮助内容。可以包含 {{flags}} 占位符,表示参数信息。 New(name, title, usage string, do DoFunc) FlagSet // Add 添加一条新的子命令 // // 参数说明可参考 [CmdOpt.New]。 // 子命令的名称根据 fs.Name 获取。 // NOTE: 这会托管 fs 的 Output、ErrorHandling 以及 Usage 对象。 Add(fs *flag.FlagSet, do DoFunc, title, usage string) FlagSet // Commands 所有的子命令列表 Commands() []string // Exec 执行命令行程序 // // args 忽略程序名之后的参数列表,比如 os.Args[1:]。 Exec(args []string) error // Help 注册 help 子命令 Help(name, title, usage string) }
func New ¶
func New(output io.Writer, errorHandling flag.ErrorHandling, usageTemplate string, do DoFunc, notFound func(string) string) CmdOpt
New 声明带有子命令的命令行处理对象
output 表示命令行信息的输出通道;
errorHandling 表示出错时的处理方式;
usageTemplate 命令行的文字说明模板,包含了以下几个占位符:
- {{flags}} 参数说明,输出时被参数替换,如果没有可以为空;
- {{commands}} 子命令说明,输出时被子命令列表替换,如果没有可以为空;
notFound 表示找不到子命令时需要返回的文字说明,若为空,则采用 usageTemplate 处理后的内容;
type FlagSet ¶ added in v0.8.0
type FlagSet interface { Arg(i int) string Args() []string Bool(name string, value bool, usage string) *bool BoolVar(p *bool, name string, value bool, usage string) Duration(name string, value time.Duration, usage string) *time.Duration DurationVar(p *time.Duration, name string, value time.Duration, usage string) Float64(name string, value float64, usage string) *float64 Float64Var(p *float64, name string, value float64, usage string) Func(name, usage string, fn func(string) error) Int(name string, value int, usage string) *int Int64(name string, value int64, usage string) *int64 Int64Var(p *int64, name string, value int64, usage string) IntVar(p *int, name string, value int, usage string) Lookup(name string) *flag.Flag NArg() int NFlag() int Name() string Output() io.Writer Set(name, value string) error String(name string, value string, usage string) *string StringVar(p *string, name string, value string, usage string) TextVar(p encoding.TextUnmarshaler, name string, value encoding.TextMarshaler, usage string) Uint(name string, value uint, usage string) *uint Uint64(name string, value uint64, usage string) *uint64 Uint64Var(p *uint64, name string, value uint64, usage string) UintVar(p *uint, name string, value uint, usage string) Var(value flag.Value, name string, usage string) Visit(fn func(*flag.Flag)) VisitAll(fn func(*flag.Flag)) }
FlagSet 子命令操作返回的接口
Click to show internal directories.
Click to hide internal directories.