总的来说,我对 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/