diff --git a/envconf.go b/envconf.go index 5465e9f..cc44d47 100644 --- a/envconf.go +++ b/envconf.go @@ -55,30 +55,36 @@ func NewConfig() *Config { if len(splitted) > 1 { for count, _ := range splitted { if count < len(splitted)-3 { - left := strings.Join(splitted[:count], "_") - right := strings.Join(splitted[count:], "_") + left := strings.Trim(strings.Join(splitted[:count], "_"), "_") + right := strings.Trim(strings.Join(splitted[count:], "_"), "_") if len(config.mapEnv[left]) == 0 { config.mapEnv[left] = make(map[string]string) config.mapMapEnv[left] = make(map[string]map[string]string) config.mapMapMapEnv[left] = make(map[string]map[string]map[string]string) } - config.mapEnv[left][right] = key + if left != "" && right != "" { + config.mapEnv[left][right] = key + } middle := splitted[count] - right = strings.Join(splitted[count+1:], "_") + right = strings.Trim(strings.Join(splitted[count+1:], "_"), "_") if len(config.mapMapEnv[left][middle]) == 0 { config.mapMapEnv[left][middle] = make(map[string]string) config.mapMapMapEnv[left][middle] = make(map[string]map[string]string) } - config.mapMapEnv[left][middle][right] = key + if left != "" && middle != "" && right != "" { + config.mapMapEnv[left][middle][right] = key + } lmiddle := splitted[count] rmiddle := splitted[count+1] - right = strings.Join(splitted[count+2:], "_") + right = strings.Trim(strings.Join(splitted[count+2:], "_"), "_") if len(config.mapMapEnv[left][lmiddle][rmiddle]) == 0 { config.mapMapMapEnv[left][lmiddle][rmiddle] = make(map[string]string) } - config.mapMapMapEnv[left][lmiddle][rmiddle][right] = key + if left != "" && lmiddle != "" && rmiddle != "" && right != "" { + config.mapMapMapEnv[left][lmiddle][rmiddle][right] = key + } } } }