3

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

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

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

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

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

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

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

4

1 回答 1

2

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

于 2017-07-06T13:48:33.287 回答