Golang 命令行框架对比:Cobra VS urfave/cli
    		       		warning:
    		            这篇文章距离上次修改已过439天,其中的内容可能已经有所变动。
    		        
        		                
                Cobra 和 urfave/cli 都是 Golang 用于创建命令行应用的库。Cobra 是一个比较流行的库,它被包含在了 Kubernetes、Docker 等知名项目中。urfave/cli 是一个较新的库,它提供了一个简洁而强大的接口。
以下是使用这两个库创建简单命令行应用的例子:
使用 Cobra 创建应用:
首先,你需要安装 Cobra 工具:
go get -u github.com/spf13/cobra/cobra然后,创建一个新的应用:
cobra init --pkg-name github.com/yourusername/myapp
cobra add cmd编写 cmd.go 文件:
package cmd
 
import (
    "fmt"
    "github.com/spf13/cobra"
)
 
// cmdCmd represents the cmd command
var cmdCmd = &cobra.Command{
    Use:   "cmd",
    Short: "A brief description of your command",
    Run: func(cmd *cobra.Command, args []string) {
        fmt.Println("cmd called")
    },
}
 
func init() {
    rootCmd.AddCommand(cmdCmd)
}使用 urfave/cli 创建应用:
首先,安装 urfave/cli:
go get -u github.com/urfave/cli编写 main.go 文件:
package main
 
import (
    "github.com/urfave/cli"
    "os"
)
 
func main() {
    app := cli.NewApp()
    app.Commands = []cli.Command{
        {
            Name:  "cmd",
            Usage: "call cmd",
            Action: func(c *cli.Context) error {
                fmt.Println("cmd called")
                return nil
            },
        },
    }
    app.Run(os.Args)
}在这两个例子中,我们创建了一个简单的命令 cmd,当调用这个命令时,它会打印出信息 "cmd called"。
两个库的选择取决于你的个人喜好和项目的具体需求。Cobra 以其广泛的应用和社区支持而著名,而 urfave/cli 提供了一个更加简洁和直观的接口。
评论已关闭