【发布时间】:2020-10-17 16:40:10
【问题描述】:
我正在使用这个库https://github.com/jessevdk/go-flags
我的应用程序的命令可能如下:
ex list events
所以我有我的包装器命令
type ExCommand struct {
List list.ListCommand `command:"list" description:"list events" subcommands-optional:"true"`
}
列表命令
type ListCommand struct {
ExCommand ExCommand `command:"events" description:"list events"`
Config string `short:"c" long:"config" description:"config file" optional:"yes"`
}
Ex 命令
type EventsCommand struct {
}
func (c *ListCommand) Execute(args []string) error {
fmt.Println("execute list")
for _, val := range args {
fmt.Println(val)
}
fmt.Printf("c: %s\n", c.Config)
return nil
}
func (c *ExCommand) Execute(args []string) error {
fmt.Println("list events")
for _, val := range args {
fmt.Println(val)
}
return nil
}
所以我想做的是有一些选择,比如
verbose
config
terse
是可以在任何命令上运行的全局选项。我似乎无法弄清楚是否有办法使用这个库来做到这一点。有没有人有这方面的经验?我可以将Config 添加到每个单独的低级命令,在这种情况下列出EventsCommand,但似乎我通过在每个低级命令而不是更高级别的ListCommand 或ExCommand 添加来重复自己。
【问题讨论】:
标签: go