问题标签 [go-cobra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - 为什么眼镜蛇自动完成功能不起作用?
我有以下 cobra cli 示例,我正在尝试使自动完成功能在我的 mac 上工作。 https://github.com/dharmeshkakadia/cobra-example
如果我将它编译成一个名为“say”的二进制文件,自动完成工作如果我将它编译成任何其他名称,它将无法工作是否有一些 mac 政策?我的 macos 版本是 Big Sur 11.6
谢谢
go - 在 Go 中使用 Cobra 和 Viper 配置默认目录路径
我希望我的 CLI 应用程序的用户输入他们要保存文件的特定路径。我尝试使用 Cobra 的 --config 标志,但我不知道如何使用。
例子:
我怎么能这样做?
go - 如何在 vscode 中调试 golang cobra cli 应用程序
我有一个 golang cobra cli 应用程序。已配置我的 vscode 进行调试。我想为我的应用程序使用 vscode 调试特定命令。
我正在使用这个 launch.json
如果我选择 main.go 并开始调试,它只会打印我的命令的帮助。如何在 vscode 中调试特定的 cli 子命令?比如说 abc create 或 abc version
如果我选择一个子命令包然后调试它说:启动失败:无法启动进程:不是可执行文件
go - PreRun / PreRunE 钩子未在 cobra 中执行
我有一个cobra
命令
和一个子命令
PreRun
但是,当参数传递出现错误时,我没有看到正在执行的钩子。
在上述情况下,mysubcommand
只需要一个参数,因此在没有它的情况下调用它时:
FWIW 我想做的是打印一个更优雅和信息丰富的消息,以防参数计数错误。
PreRunE
代替使用时的情况也是一样PreRun
go - 在 Go CLI 中使用 Cobra 和 Viper
我在 Go 中创建了一个 CLI,我决定同时使用 Cobra 和 Viper 来解析 cli 参数和配置文件。
我到处寻找一种同时使用cobra
并viper
合并配置文件和给定 CLI 参数的方法。
我偶然发现了毒蛇毒刺*cobra.Command
作为使用标志的一种方式,并使用cobra
.
这个实现的问题是它强制配置键与命令参数具有相同的名称。它也不允许我在配置文件中有更多的配置选项。
我也发现了这个 Github 问题。除了 CLI 标志之外,这似乎也不允许我进行自定义配置。
没有找到合适的解决方案,我选择了“肮脏”的路线,并决定使用 cmd 标志创建一个配置实例,viper
然后使用github.com/imdario/mergo
.
一个简化的例子:
显然,这种实现存在问题,所以我想知道是否有人知道使用cobra
and的更好方法viper
。
go - 在不运行 init() 的情况下在 golang 中获得跨包覆盖
我继承了一个非常大、非常古老的 golang 代码库。我正在尝试获取覆盖率统计信息,并且大多数测试都在跨包进行测试。
如果我运行go test ./...
测试通过。
如果我运行go test -coverpkg=./... ./...
,则测试失败,因为所有init()
功能都在测试期间执行。(它在一堆甚至没有测试的 cobra cmd 中失败了)。init()
导致测试失败的行为。
有没有办法让 init() 在收集覆盖率时不会发生,就像正常的测试运行一样?
json - 如何提供 JSON 数组作为 cobra cli 的参数
我正在使用 Go 和 Cobra 库构建 CLI。我有以下需要在相应结构中反序列化的 JSON。参数为 JSON 数组:
结构
我正在使用 CobraStringSicceVarP
如下
但是 cobra 正在将传入的 json 作为一个字符串读取,[(stringA, stringB), stringC]
而我希望数组的长度为 2,例如 StringArray[0]:(stringA, stringB)
和 StringArray[1]: stringC
。
我不能使用它,StringSliceVarP
因为它会根据,
我不想要的拆分,因为我的数组字符串本身可能有一个,
.
我怎样才能做到这一点?
go - 眼镜蛇未能按要求标记标志
我在 a 中添加了以下标志cobra.Cmd
在哪里
这可以按预期工作,但是当尝试根据需要制作上述标志时,该过程会失败
-a
/--application
按预期工作,它也打印在我的帮助中
为什么没有按要求设置?
go-cobra - 为什么 Cobra 标志在此代码中不起作用
如何使用本地标志在 Cobra 中使用标志