3 command-line-interface go go-cobra
我想定义一个 CLI 标志来计算它出现的次数。
例如,让我们--verbose
用简写来定义标志-v
:
# verbose value should be 0
> myCmd
# verbose value should be 1
> myCmd -v
# verbose value should be 2
> myCmd -vv
# ...
Run Code Online (Sandbox Code Playgroud)
有没有内置的方法来实现它?
来自https://github.com/spf13/cobra:“标志功能由 pflag 库提供”
pflag 库中有多个用于计数标志的选项,如下所示: https: //godoc.org/github.com/spf13/pflag#Count
可以提供一个跨越许多文件的长示例,但其关键是使用类似这样的东西(其中“run”是本例中的 cobra 命令):
runCmd.Flags().CountP("verbose", "v", "counted verbosity")
Run Code Online (Sandbox Code Playgroud)
要稍后在 runCmd 的 Run 函数中检索该值,请使用以下命令:
verbosity, _ := cmd.Flags().GetCount("verbose")
Run Code Online (Sandbox Code Playgroud)
变量详细程度将是一个保存重复次数的 int。
在该示例中,我使用了 pflag 的 CountP 版本,它允许提供长标志名称和短标志名称(我认为这就是您希望找到的)。
归档时间: |
|
查看次数: |
1599 次 |
最近记录: |