眼镜蛇开始:在Golang中创建多级命令行界面
#go #cli #cobra

介绍:

在Golang中使用COBRA创建CLI是一个不错的选择,嵌套命令可以帮助有效地组织和构造您的CLI。下面,我将指导您使用Cobra创建嵌套CLI的过程。

什么是眼镜蛇?

眼镜蛇是用于构建CLI应用程序的强大而灵活的Golang库。它提供了一个优雅易于使用的界面来定义命令,标志和参数,使其成为Golang开发人员创建CLI应用程序的流行选择。

先决条件:

我们开始之前,请确保您已安装(Golang)并正确设置工作空间。您可以通过执行以下命令来安装眼镜蛇:

go get -u github.com/spf13/cobra@latest

入门:

让我们首先在所需的工作区中创建一个新的Golang项目。设置项目后,我们将通过运行以下命令来初始化COBRA应用程序:

cobra init [your-cli-app-name]

这将为您的CLI应用程序创建一个基本结构,包括必要的文件和文件夹。

定义root命令:

root命令是您的CLI应用程序的入口点。当用户在没有任何子命令的情况下运行应用程序时,这是执行的命令。打开cmd/root.go文件,让我们使用眼镜蛇来定义root命令:

// cmd/root.go
package cmd

import (
    "fmt"
    "github.com/spf13/cobra"
)

var rootCmd = &cobra.Command{
    Use:   "[your-cli-app-name]",
    Short: "A brief description of your CLI application",
    Long: `A longer description that explains your CLI application
in detail. For example, you can mention the various commands
available and what they do.`,
    Run: func(cmd *cobra.Command, args []string) {
        // This function will be executed when the root command is called
        fmt.Println("Welcome to [your-cli-app-name]! Use --help for usage.")
    },
}

func Execute() {
    if err := rootCmd.Execute(); err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

您可以尝试运行它:

$ go run main.go                                                          
> Welcome to [your-cli-app-name]! Use --help for usage.

添加一个嵌套命令:

接下来,让我们在CLI应用程序中添加一个嵌套命令。嵌套命令是在主命令下提供其他功能的子命令。例如,让我们为我们的应用程序创建一个称为“子命令”的子命令。打开cmd/subcommand.go文件并定义嵌套命令:

// cmd/subcommand.go
package cmd

import (
    "fmt"
    "github.com/spf13/cobra"
)

var subCmd = &cobra.Command{
    Use:   "subcommand",
    Short: "A brief description of the subcommand",
    Long: `A longer description that explains the subcommand
in detail. For example, you can mention how it complements
the main command and what options it supports.`,
    Run: func(cmd *cobra.Command, args []string) {
        // This function will be executed when the "subcommand" is called
        fmt.Println("Running the subcommand!")
    },
}

func init() {
    rootCmd.AddCommand(subCmd)
}

让我们再次尝试:

$ go run main.go subcommand           
> Running the subcommand!

结论:

恭喜! ð您已经成功地使用了带有嵌套命令的COBRA创建了CLI应用程序。您可以通过添加更多子命令,标志和参数来继续扩展应用程序以满足您的特定需求。

在这篇博客文章中,我们只刮过了眼镜蛇可以实现的表面。这是一个功能强大的库,可让您轻松创建专业级别的CLIS。尝试各种选项,自定义命令,并探索COBRA提供的更多功能。

愉快的编码! ð - ð»

脚注:

完整代码可在githubðã

上找到