Go 开源库推荐用于创建命令行应用程序的Cobra
Cobra 是一个用于创建命令行应用程序的 Go 开源库。它提供了一组简单易用的 API,可以让开发者快速地创建 CLI 工具。本文将介绍 Cobra 的用法,并演示如何创建一个简单的命令行应用程序。
安装 Cobra
首先,我们需要安装 Cobra。可以使用以下命令在终端中安装 Cobra:
go get -u github.com/spf13/cobra/cobra
创建一个 Cobra 应用程序
我们将创建一个简单的命令行应用程序,它将包含两个命令:hello 和 goodbye。我们将使用 Cobra 来创建这个应用程序。
首先,我们需要创建一个新的 Cobra 项目。在终端中输入以下命令:
cobra init hello-world
这将在当前目录下创建一个名为 hello-world 的新项目。接下来,我们需要进入该项目并添加我们的第一个命令。
cd hello-world cobra add hello
这将在项目中创建一个名为 hello 的新命令。现在我们可以编辑 cmd/hello.go 文件,以添加一些自定义逻辑。
我们将为 hello 命令添加一个标志参数 --name,并输出一个问候语。打开 cmd/hello.go 文件,并添加以下内容:
package cmd import ( "fmt" "github.com/spf13/cobra" ) var name string func init() { helloCmd.Flags().StringVarP(&name, "name", "n", "", "your name") } var helloCmd = &cobra.Command{ Use: "hello", Short: "Say hello", Run: func(cmd *cobra.Command, args []string) { if name != "" { fmt.Printf("Hello, %s!\n", name) } else { fmt.Println("Hello!") } }, } func init() { rootCmd.AddCommand(helloCmd) }
现在我们可以构建并运行这个应用程序。在终端中输入以下命令:
go build -o hello-world cmd/hello.go ./hello-world hello --name=John
应用程序应该输出以下内容:
现在我们可以添加另一个命令 goodbye。打开 cmd/root.go 文件,并添加以下内容:
package cmd import ( "fmt" "github.com/spf13/cobra" ) func init() { rootCmd.AddCommand(goodbyeCmd) } var goodbyeCmd = &cobra.Command{ Use: "goodbye", Short: "Say goodbye", Run: func(cmd *cobra.Command, args []string) { fmt.Println("Goodbye!") }, }
现在我们可以再次构建并运行应用程序,以测试新的命令。在终端中输入以下命令:
go build -o hello-world cmd/*.go ./hello-world goodbye
应用程序应该输出以下内容:
Goodbye!
恭喜!您已经成功使用 Cobra 创建了一个简单的命令行应用