mkideal/cli命令行程序构建工具

联合创作 · 2023-09-28 12:51

cli是一个用go语言写成的用于快速构建go语言命令行程序的工具。

Key features

  • 轻巧易用。
  • 按标记定义标记,例如标记名称(短或/和长),描述,默认值,密码,提示等。
  • 类型安全。
  • 输出看起来非常不错。
  • 支持自定义验证器。
  • 支持切片和映射作为标志。
  • 支持任何类型作为实现cli.Decoder接口的标志字段。
  • 支持任何类型作为使用FlagParser的标志字段。
  • 命令建议。(例如hl=> help,“ veron” =>“ version”)。
  • 支持标志的默认值,甚至支持有关env变量的表达式(例如dft:"$HOME/dev")。
  • 支持git commit命令之类的编辑器(请参见示例2122

一个hello的例子

package main

import (
    "github.com/mkideal/cli"
)

type argT struct {
    Help bool   `cli:"!h,help" usage:"display help information"`
    Name string `cli:"name" usage:"your name" dft:"world"`
    Age  uint8  `cli:"a,age" usage:"your age" dft:"100"`
}

func main() {
    cli.Run(&argT{}, func(ctx *cli.Context) error {
        argv := ctx.Argv().(*argT)
        if argv.Help {
            ctx.String(ctx.Usage())
        } else {
            ctx.String("Hello, %s! Your age is %d?\n", argv.Name, argv.Age)
        }
        return nil
    })
}
浏览 12
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报