Skip to content

issue9/cmdopt

Repository files navigation

cmdopt Go license codecov PkgGoDev Go version

cmdopt 命令行选项的增强,可以轻松处理子命令。高度重用 flag 包。

opt := cmdopt.New(...)

// 子命令 build,为一个 flag.FlagSet 实例
build := opt.New("build", "title", "usage", func(f *flag.FlagSet) DoFunc {
    v := f.Bool("v", "false", ...)

    return func(output io.Writer)error{
        if v {
            ...
        } else {
            output.Write([]byte("build"))
        }
    }
})

// 子命令 install
install := opt.New("install", "title", "usage", func(*flag.FlagSet) DoFunc {
    return func(output io.Writer)error{
        output.Write([]byte("install"))
    }
})

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。