mirror of
https://github.com/spf13/viper
synced 2025-05-06 12:17:18 +00:00
This patch makes TOML support optional, disabling it by default. To enable support include the Golang build tag `toml`. For example, the following command builds Viper without TOML support: $ go build Whereas this command will build Viper, along with support for parsing TOML: $ go build -tags toml The reason for making TOML optional is due to the dependency upon the BurntSushi package that is used to unmarshal TOML content. The package is licensed under the WTFPL license (http://www.wtfpl.net/) and incompatible with the Kubernetes project. Pull requests submitted to K8 that transitively include a dependency upon packages licensed under the WTFPL license are denied. To this end, until such time an alternative package is deemed acceptable for parsing TOML content, this patch would make TOML an optional component of Viper, enabled only when explicitly requested via the build tag `toml`.
24 lines
607 B
Go
24 lines
607 B
Go
// +build toml
|
|
|
|
// Copyright © 2014 Steve Francia <spf@spf13.com>.
|
|
//
|
|
// Use of this source code is governed by an MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Viper is a application configuration system.
|
|
// It believes that applications can be configured a variety of ways
|
|
// via flags, ENVIRONMENT variables, configuration files retrieved
|
|
// from the file system, or a remote key/value store.
|
|
|
|
package viper
|
|
|
|
import (
|
|
"github.com/BurntSushi/toml"
|
|
)
|
|
|
|
func unmarshalTOML(data string, v interface{}) error {
|
|
if _, err := toml.Decode(data, v); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|