summaryrefslogtreecommitdiffstats
path: root/config/configProvider.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-05-04 10:18:45 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-05-21 00:41:42 +0200
commit0bbdef986d8eecf4fabe9a372e33626dbdfeb36b (patch)
tree72e52401c9bf5503e0581a0f522a350311e29a0e /config/configProvider.go
parent9bd4236e1b3bee332439eef50e12d4481340c3eb (diff)
config: Add the foundation for GDPR privacy configuration
See #4616
Diffstat (limited to 'config/configProvider.go')
-rw-r--r--config/configProvider.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/config/configProvider.go b/config/configProvider.go
index 471ce9a1d..335294d73 100644
--- a/config/configProvider.go
+++ b/config/configProvider.go
@@ -13,6 +13,12 @@
package config
+import (
+ "strings"
+
+ "github.com/spf13/viper"
+)
+
// Provider provides the configuration settings for Hugo.
type Provider interface {
GetString(key string) string
@@ -25,3 +31,14 @@ type Provider interface {
Set(key string, value interface{})
IsSet(key string) bool
}
+
+// FromConfigString creates a config from the given YAML, JSON or TOML config. This is useful in tests.
+func FromConfigString(config, configType string) (Provider, error) {
+ v := viper.New()
+ v.SetConfigType(configType)
+ if err := v.ReadConfig(strings.NewReader(config)); err != nil {
+ return nil, err
+ }
+ return v, nil
+
+}