This commit is contained in:
Kiril Zvezdarov 2015-02-26 03:32:17 +00:00
commit 0926c9179c

View file

@ -322,23 +322,10 @@ func (v *viper) MarshalKey(key string, rawVal interface{}) error {
// Marshals the config into a Struct // Marshals the config into a Struct
func Marshal(rawVal interface{}) error { return v.Marshal(rawVal) } func Marshal(rawVal interface{}) error { return v.Marshal(rawVal) }
func (v *viper) Marshal(rawVal interface{}) error { func (v *viper) Marshal(rawVal interface{}) error {
err := mapstructure.Decode(v.defaults, rawVal) err := mapstructure.WeakDecode(v.AllSettings(), rawVal)
if err != nil { if err != nil {
return err return err
} }
err = mapstructure.Decode(v.config, rawVal)
if err != nil {
return err
}
err = mapstructure.Decode(v.override, rawVal)
if err != nil {
return err
}
err = mapstructure.Decode(v.kvstore, rawVal)
if err != nil {
return err
}
v.insensativiseMaps() v.insensativiseMaps()
return nil return nil
@ -655,6 +642,14 @@ func (v *viper) AllKeys() []string {
m[key] = struct{}{} m[key] = struct{}{}
} }
for key, _ := range v.env {
m[key] = struct{}{}
}
for key, _ := range v.pflags {
m[key] = struct{}{}
}
for key, _ := range v.override { for key, _ := range v.override {
m[key] = struct{}{} m[key] = struct{}{}
} }