我想定义一个CLI标志,用于统计它出现的次数。
例如,让我们用缩写-v
:定义标志--verbose
# verbose value should be 0
> myCmd
# verbose value should be 1
> myCmd -v
# verbose value should be 2
> myCmd -vv
# ...
有什么内在的方法可以实现吗?
来源https://github.com/spf13/cobra:";标志功能由pflag库"提供;
pflag库中有几个计数标志选项,如中所述:https://godoc.org/github.com/spf13/pflag#Count
可以给出一个跨越许多文件的长示例,但关键是使用这样的东西(在这种情况下,"run"是cobra命令(:
runCmd.Flags().CountP("verbose", "v", "counted verbosity")
要稍后在runCmd的Run函数中检索该值,请使用以下命令:
verbosity, _ := cmd.Flags().GetCount("verbose")
变量verbose将是一个int,包含重复次数。
在这个例子中,我使用了pflag的CountP版本,它允许提供长和短标志名称(我认为这正是您希望找到的(。