go - 在 Go w/Cobra 中创建具有相同名称的子命令

标签 go command-line-interface go-cobra

总的来说,我对 Go 很陌生,这是我在 Cobra 中的第一个项目。

使用命令行工具在 Cobra 中创建命令似乎很容易:
cobra add <command>

添加子命令似乎也很容易。
cobra add <subcommand> -p '<command>'

我遇到的问题是有两个子命令用于两个不同的命令,但是子命令具有相同的名称。例如:

我可能有一个名为“people”的命令和一个名为“places”的命令。
cobra add people
cobra add places

每个命令都需要自己的子命令,称为“添加”。
cobra add add -p 'people'
cobra add add -p 'places'

第二个命令将失败,因为它会尝试创建第一个命令已经创建的“add.go”文件。是否可以将同名的子命令添加到不同的父命令中?最终结果会是这样的:
people add --first "bob" --last "smith"
places add "someplace" --zip "12345"

最佳答案

command add 所做的只是为您生成一个 Go 源文件。你可以自己写文件;或者您可以使用创建的第一个,重命名它,然后创建下一个。您还可能需要在生成的文件中重命名一些全局变量/函数以避免名称冲突。

关于go - 在 Go w/Cobra 中创建具有相同名称的子命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44940787/

相关文章:

go - 单值上下文中的多值 reader.ReadString()

go - 使用配置文件连接到 Kubernetes 服务器时处理错误

bash - 如何将 Go cmd 应用程序提供为高效应用程序

command-line-interface - 如何查看PCF版本

ios - 在 Swift CLI 中使用 GCD

go - 如何防止负整数被视为简写标志

testing - Cobra:如何在测试中以编程方式设置标志

arrays - 将 JSON 字符串中的 JS 数组解析为 Golang 映射

google-app-engine - App Engine 运行 go 1.5,发行说明说 1.6

python - 如何将 python 脚本更改为应用程序