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 创建了一个简单的命令行应用


分享:

扫一扫在手机阅读、分享本文