add parsing for stringToString flags

This commit is contained in:
Trevor Foster 2020-03-27 23:21:05 -04:00
parent 97ee7adfef
commit 6d67515500

View file

@ -1083,6 +1083,16 @@ func (v *Viper) find(lcaseKey string, flagDefault bool) interface{} {
s = strings.TrimSuffix(s, "]")
res, _ := readAsCSV(s)
return cast.ToIntSlice(res)
case "stringToString":
s := strings.TrimPrefix(flag.ValueString(), "[")
s = strings.TrimSuffix(s, "]")
elements := strings.Split(s, ",")
result := make(map[string]string, len(elements))
for _, element := range elements {
pair := strings.SplitN(element, "=", 2)
result[pair[0]] = pair[1]
}
return result
default:
return flag.ValueString()
}