Releases: guonaihong/clop
Releases · guonaihong/clop
v0.1.4版本
v0.1.3版本
新增MustBind函数
v0.1.2版本
v0.1.1版本
看#63
Parsing flag code to generate clop code
让你爽翻天, 如果你的command想迁移至clop, 但是全面众多的flag代码, 又不想花费太多时间在无谓的人肉code转换上, 这时候你就需要clop命令, 一行命令解决你的痛点.
1.安装clop命令
go get github.com/guonaihong/clop/cmd/clop
2.使用clop解析包含flag包的代码
就可以把main.go里面的flag库转成clop包的调用方式
clop -f main.go
main.go
代码如下
package main
import "flag"
func main() {
s := flag.String("string", "", "string usage")
i := flag.Int("int", "", "int usage")
flag.Parse()
}
输出代码如下
package main
import (
"github.com/guonaihong/clop"
)
type flagAutoGen struct {
Flag string `clop:"--string" usage:"string usage" `
Flag int `clop:"--int" usage:"int usage" `
}
func main() {
var flagVar flagAutoGen
clop.Bind(&flagVar)
}
v0.1.0版本
修复:使用tag,没有正确显示命令行选项命的问题。
v0.0.12版本
支持short和 long tag。
#58
package main
import (
"fmt"
"github.com/guonaihong/clop"
)
type cat struct {
NumberNonblank bool `clop:"-c;long"
usage:"number nonempty output lines, overrides"`
ShowEnds bool `clop:"-E;long"
usage:"display $ at end of each line"`
Number bool `clop:"-n;long"
usage:"number all output lines"`
SqueezeBlank bool `clop:"-s;long"
usage:"suppress repeated empty output lines"`
ShowTab bool `clop:"-T;long"
usage:"display TAB characters as ^I"`
ShowNonprinting bool `clop:"-v;long"
usage:"use ^ and M- notation, except for LFD and TAB" `
Files []string `clop:"args=files"`
}
func main() {
c := cat{}
err := clop.Bind(&c)
fmt.Printf("%#v, %s\n", c, err)
}
v0.0.11版本
see #55
支持如果输入错误选项,推荐正确的选项。
- 示例代码
package main
import (
"fmt"
"github.com/guonaihong/clop"
)
type T struct {
Num int `clop:"--num" usage:"a"`
Rate int `clop:"--rate" usage:"b"`
}
func main() {
t := T{}
clop.Bind(&t)
fmt.Printf("%d:%d\n", clop.GetIndex("a"), clop.GetIndex("b"))
fmt.Printf("%v\n", t)
}
- 输出
./t --number
error: Found argument '--number' which wasn't expected, or isn't valid in this context
Did you mean --num?
For more information try --help