Releases: guonaihong/clop
Releases · guonaihong/clop
v0.0.7版本
增加usage效果截图
优化冗余代码
v0.0.6版本
新增全局配置,可以关闭usage信息里面的default值
issue 移步 #43
package main
import (
"fmt"
"github.com/guonaihong/clop"
)
type Hello struct {
File string `clop:"-f; --file" usage:"file" default:"./my.log"`
}
func main() {
clop.ShowUsageDefault = false // v0.0.6新加功能
h := Hello{}
clop.Bind(&h)
fmt.Printf("%#v\n", h)
}
v0.0.5版本
v0.0.4版本
#26 可以控制选项只能被设置一次
package main
import (
"github.com/guonaihong/clop"
)
type Once struct {
Debug bool `clop:"-d; --debug; once" usage:"debug mode"`
}
func main() {
o := Once{}
clop.Bind(&o)
}
/*
./once -debug -debug
error: The argument '-d' was provided more than once, but cannot be used multiple times
For more information try --help
*/
#35 -h; --help选项可以被重载
v0.0.3版本
#33
可以获取命令行选项优先级别
package main
import (
"fmt"
"github.com/guonaihong/clop"
)
type cat struct {
NumberNonblank bool `clop:"-b;--number-nonblank"
usage:"number nonempty output lines, overrides"`
ShowEnds bool `clop:"-E;--show-ends"
usage:"display $ at end of each line"`
}
func main() {
c := cat{}
clop.Bind(&c)
if clop.GetIndex("number-nonblank") < clop.GetIndex("show-ends") {
fmt.Printf("cat -b -E\n")
} else {
fmt.Printf("cat -E -b \n")
}
}
// cat -be
// 输出 cat -b -E
// cat -Eb
// 输出 cat -E -b
v0.0.2版本
v0.0.1版本
v0.0.1版本功能如下
#2 完成一个最简单的解析器
#3 实现收集args参数功能
#7 实现--help输出帮助信息
#14 扩展解析器,在处理slice变量时--新增贪婪模式
#11 支持环境变量
#20 about,version,usage信息补全
#19 子命令支持
#21 一个最精简的readme.md
#22 新增Usage接口
#23 help 信息里面的Usage 如设置Subcommand要显示出来
#24 help显示里面的每个子命令都要显示procName
#10 必选项标记支持
#25 测试valid里面tag写错的情况
#9 默认值支持
#8 未注册选项行为
#12 注册重复选项报错
#17 对于长选项是只能使用两个减号,短选项只能使用一个减号
#16 省略clop tag,取首字母为短远项,取全部字段为长选项
#5 短,长选项都支持=等于号
#28 bugfix,数据校验和子命令结合报错
#15 只有环境变量,没有命令行选项的在help如何体现?
#30 增加ci/cd