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

时间:2017-07-06 05:54:24

标签: go command-line-interface go-cobra

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

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

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

我遇到问题的地方有两个不同命令的子命令,但子命令的名称相同。例如:

我可能会有一个名为“人物”的命令。以及一个名为&#39; places&#39;的命令 cobra add people
cobra add places

每个命令都需要自己的子命令叫做&#39;添加&#39; cobra add add -p 'people'
cobra add add -p 'places'

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

1 个答案:

答案 0 :(得分:2)

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