Handle TOML Library Licensing

This patch updates the package used for parsing TOML content from
"github.com/BurntSushi/toml" to "github.com/pelletier/go-toml" as the
latter uses a more accepted OSS license (MIT), enabling the inclusion of
Viper or projects that depend on Viper in projects that have licensing
requirements incongruent with the license of the previous TOML package.
This commit is contained in:
Vladimir Vivien 2016-08-12 14:14:35 -04:00
parent 346299ea79
commit 393cd591dc

View file

@ -21,9 +21,9 @@ import (
"strings" "strings"
"unicode" "unicode"
"github.com/BurntSushi/toml"
"github.com/hashicorp/hcl" "github.com/hashicorp/hcl"
"github.com/magiconair/properties" "github.com/magiconair/properties"
toml "github.com/pelletier/go-toml"
"github.com/spf13/cast" "github.com/spf13/cast"
jww "github.com/spf13/jwalterweatherman" jww "github.com/spf13/jwalterweatherman"
"gopkg.in/yaml.v2" "gopkg.in/yaml.v2"
@ -155,9 +155,14 @@ func unmarshallConfigReader(in io.Reader, c map[string]interface{}, configType s
} }
case "toml": case "toml":
if _, err := toml.Decode(buf.String(), &c); err != nil { tree, err := toml.LoadReader(buf)
if err != nil {
return ConfigParseError{err} return ConfigParseError{err}
} }
tmap := tree.ToMap()
for k, v := range tmap {
c[k] = v
}
case "properties", "props", "prop": case "properties", "props", "prop":
var p *properties.Properties var p *properties.Properties