golang开发命令行工具cli
问题分析
开发命令行工具的go包很多,不管是否出名至少上百个,这里介绍一个本人修改版本的cli包.使用很简单,可以开发命令行工具.
简单介绍
官方地址 github.com/logoove/cli
- cli add 1 这种命令用 c.Args()[0]获取的就是第一个参数
1
长度使用c.NArg()==0来判断是否有参数 - cli all –qq=1 这种是设置名称获取c.GetString(“qq”)
上面是两种获取参数的方法.
使用示例
package main
import (
"fmt"
"github.com/logoove/cli"
"strings"
"os"
)
func main() {
app := cli.NewApp()
app.Name = "cli"
app.Version="1.0.0"
app.Authors="Yoby\nWechat:logove"
app.Description="程序描述"
app.Usage="Golang版本管理工具"
app.SeeAlso = "2021-"+strconv.Itoa(time.Now().Year())
app.Commands = []*cli.Command{
{
Name: "add",
Usage: "Add file contents to the index",
Action: func(c *cli.Context) {
fmt.Println("added files: ", strings.Join(c.Args(), ", "))
},
},
{
// alias name
Name: "a,all",
Usage: "Record changes to the repository",
Flags: []*cli.Flag {
{
Name: "qq,q",
Usage: "commit message",
},
},
Action: func(c *cli.Context) {
fmt.Println(c.GetString("qq"))
},
},
}
app.Run(os.Args)
}
作品
使用这个库,笔者开发了go切换库gv,python切换库pv,nodejs切换库nv三个,原理都一样.
- 原文作者:Yoby
- 原文链接:/2021/06/15/20210615-cli.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),关于内容请通过关于我方式联系作者!