1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-30 18:13:54 +08:00

commands: Added Option helper constructors

This commit is contained in:
Matt Bell
2014-11-10 16:59:07 -08:00
committed by Juan Batiz-Benet
parent 3e30093c2b
commit 38b31c65f8

View File

@ -18,11 +18,43 @@ type Option struct {
Type reflect.Kind // value must be this type
Description string // a short string to describe this option
// TODO: add more features(?):
// MAYBE_TODO: add more features(?):
//Default interface{} // the default value (ignored if `Required` is true)
//Required bool // whether or not the option must be provided
}
// constructor helper functions
func NewOption(kind reflect.Kind, names ...string) Option {
if len(names) < 2 {
panic("Options require at least two string values (name and description)")
}
desc := names[len(names)-1]
names = names[:len(names)-2]
return Option{
Names: names,
Type: kind,
Description: desc,
}
}
func BoolOption(names ...string) Option {
return NewOption(Bool, names...)
}
func IntOption(names ...string) Option {
return NewOption(Int, names...)
}
func UintOption(names ...string) Option {
return NewOption(Uint, names...)
}
func FloatOption(names ...string) Option {
return NewOption(Float, names...)
}
func StringOption(names ...string) Option {
return NewOption(String, names...)
}
// Flag names
const (
EncShort = "enc"