mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-30 09:59:13 +08:00
commands: Added Option helper constructors
This commit is contained in:

committed by
Juan Batiz-Benet

parent
3e30093c2b
commit
38b31c65f8
@ -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"
|
||||
|
Reference in New Issue
Block a user