use v.getConfigType to determine config type in WriteConfig

This commit is contained in:
Kristin Laemmert 2017-12-20 12:05:47 -08:00 committed by mildwonkey
parent 1a0c4a370c
commit 9656971389

View file

@ -1235,14 +1235,11 @@ func (v *Viper) SafeWriteConfigAs(filename string) error {
func writeConfig(filename string, force bool) error { return v.writeConfig(filename, force) } func writeConfig(filename string, force bool) error { return v.writeConfig(filename, force) }
func (v *Viper) writeConfig(filename string, force bool) error { func (v *Viper) writeConfig(filename string, force bool) error {
jww.INFO.Println("Attempting to write configuration to file.") jww.INFO.Println("Attempting to write configuration to file.")
ext := filepath.Ext(filename)
if len(ext) <= 1 { if !stringInSlice(v.getConfigType(), SupportedExts) {
return fmt.Errorf("Filename: %s requires valid extension.", filename) return UnsupportedConfigError(v.getConfigType())
}
configType := ext[1:]
if !stringInSlice(configType, SupportedExts) {
return UnsupportedConfigError(configType)
} }
if v.config == nil { if v.config == nil {
v.config = make(map[string]interface{}) v.config = make(map[string]interface{})
} }
@ -1260,7 +1257,7 @@ func (v *Viper) writeConfig(filename string, force bool) error {
if err != nil { if err != nil {
return err return err
} }
return v.marshalWriter(f, configType) return v.marshalWriter(f, v.getConfigType())
} }
// Unmarshal a Reader into a map. // Unmarshal a Reader into a map.