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

blov • 1945 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
cli是一个用go语言写成的用于快速构建go语言命令行程序的工具。 ## 有些什么特色呢 * 简单,容易上手 * 有安全检查. 包括类型检查,值范围检查,更强大的是自定义的验证函数. * 基于go语言的tag属性实现,参数定义结构化,简洁优雅.支持4种tag: cli,usage,dft, name. * 支持默认值标签dft,可以用环境变量做默认值,支持required声明. * 支持单个flag多个名字,像 -h --help 这样的. * 支持命令树形结构,N层子命令随意玩. * 支持子命令错误纠正提示,hlp会问你是要help吗 * 天然的命令树形结构摇身一变就可以变成HTTP路由了,像$app hello world -&gt; /hello/world * 支持命令行参数结构体的继承 * 支持短flag的组合式.-x -y -z -&gt; -xyz, 不过必须全是bool型的才可以组合 * 支持长这样的-Fvalue的用法,它就等于-F value,不过-F不能是bool型 * 可以用 -- 来隔离flags和arguments * 支持使用数组和map了,数组的-F v1 -F v2,map的-F k1=v1 -F k2=v2 一个hello的例子 <pre class="brush:cpp ;toolbar: true; auto-links: false;">package main import (     &#34;github.com/mkideal/cli&#34; ) type argT struct {     Help bool   `cli:&#34;!h,help&#34; usage:&#34;display help information&#34;`     Name string `cli:&#34;name&#34; usage:&#34;your name&#34; dft:&#34;world&#34;`     Age  uint8  `cli:&#34;a,age&#34; usage:&#34;your age&#34; dft:&#34;100&#34;` } func main() {     cli.Run(&amp;argT{}, func(ctx *cli.Context) error {         argv := ctx.Argv().(*argT)         if argv.Help {             ctx.String(ctx.Usage())         } else {             ctx.String(&#34;Hello, %s! Your age is %d?\n&#34;, argv.Name, argv.Age)         }         return nil     }) }</pre>
授权协议:
MIT
开发语言:
Google Go 查看源码»
操作系统:
跨平台
1945 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传