我想定义一个 CLI 标志来计算它出现的次数。
例如,让我们--verbose
用它的简写来定义标志-v
:
# verbose value should be 0
> myCmd
# verbose value should be 1
> myCmd -v
# verbose value should be 2
> myCmd -vv
# ...
有没有内置的方法来实现它?
我想定义一个 CLI 标志来计算它出现的次数。
例如,让我们--verbose
用它的简写来定义标志-v
:
# 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")
可变详细程度将是一个包含重复次数的 int。
在该示例中,我使用了 pflag 的 CountP 版本,它允许提供长标志名称和短标志名称(我认为这是您希望找到的)。