网址:https://github.com/mitchellh/cli
功能
该框架是个人开发的命令行程序框架,作者还成立了公司(HashiCorp),其公司的产品也采用这个CLI框架。
解读
框架的思路是:把命令和执行方法以map的形式记录在内部,然后根据用户输入的命令,决定执行哪个方法。实际上记录的是命令字符串和CommandFactory,由CommandFactory创建Command然后执行。
框架默认支持version和help两个功能。
示例
下面我们以例子来说明:(为了方便说明,所有的代码都在一个文件里,实际上应该分开多个文件)
package main
import (
"fmt"
"os"
"github.com/mitchellh/cli"
)
func main() {
c := cli.NewCLI("app", "1.0.0") //这里指定了APP名字和版本
c.Args = os.Args[1:]
c.Commands = map[string]cli.CommandFactory{
"foo": fooCommandFactory, //定义foo命令和工厂
"bar": barCommandFactory, //定义bar命令和工厂
}
exitStat