From 6d67515500ea32688ea41ff6044954afae370e03 Mon Sep 17 00:00:00 2001 From: Trevor Foster Date: Fri, 27 Mar 2020 23:21:05 -0400 Subject: [PATCH] add parsing for stringToString flags --- viper.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/viper.go b/viper.go index 7b12b36..1d2610a 100644 --- a/viper.go +++ b/viper.go @@ -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() }