总的来说,我对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"
command add
所做的只是为你生成一个 Go 源文件。您可以自己编写文件;或者,您可以采用创建的第一个,重命名它,然后创建下一个。您可能还必须重命名生成的文件中的一些全局变量/函数,以避免名称冲突。