AllKeys() now includes bound flag and env var keys - viper - [fork] go viper port for 9front
(HTM) git clone git@git.drkhsh.at/viper.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit c25387f10d265e6ed88fef3fe3d37bc757124983
(DIR) parent e37b56e207dda4d79b9defe0548e960658ee8b6b
(HTM) Author: akutz <sakutz@gmail.com>
Date: Thu, 29 Oct 2015 12:57:16 -0500
AllKeys() now includes bound flag and env var keys
This patch fixes a bug where the function `AllKeys()` did not include
the keys for bound flags and environment variables.
Diffstat:
M viper.go | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/viper.go b/viper.go
@@ -962,19 +962,27 @@ func (v *Viper) AllKeys() []string {
m := map[string]struct{}{}
for key, _ := range v.defaults {
- m[key] = struct{}{}
+ m[strings.ToLower(key)] = struct{}{}
+ }
+
+ for key, _ := range v.pflags {
+ m[strings.ToLower(key)] = struct{}{}
+ }
+
+ for key, _ := range v.env {
+ m[strings.ToLower(key)] = struct{}{}
}
for key, _ := range v.config {
- m[key] = struct{}{}
+ m[strings.ToLower(key)] = struct{}{}
}
for key, _ := range v.kvstore {
- m[key] = struct{}{}
+ m[strings.ToLower(key)] = struct{}{}
}
for key, _ := range v.override {
- m[key] = struct{}{}
+ m[strings.ToLower(key)] = struct{}{}
}
a := []string{}