in flag/value.go [48:79]
func NewFlagKeyValue(cfg *ucfg.Config, autoBool bool, opts ...ucfg.Option) *FlagValue {
return newFlagValue(cfg, opts, func(arg string) (*ucfg.Config, error, error) {
var key string
var val interface{}
var err error
args := strings.SplitN(arg, "=", 2)
if len(args) < 2 {
if !autoBool || len(args) == 0 {
err := fmt.Errorf("argument '%v' is empty ", arg)
return nil, err, err
}
key = arg
val = true
} else {
key = args[0]
if args[1] == "" {
return nil, nil, nil
}
val, err = parse.Value(args[1])
if err != nil {
return nil, err, err
}
}
tmp := map[string]interface{}{key: val}
cfg, err := ucfg.NewFrom(tmp, opts...)
return cfg, err, err
})
}