Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-02-05 06:20:06 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-02-17 19:15:26 +0300
commit93ca7c9e958e34469a337e4efcc7c75774ec50fd (patch)
tree5dfa296cfe74fd5ef8f0d41ea4078704f453aa04 /config
parente34af6ee30f70f5780a281e2fd8f4ed9b487ee61 (diff)
all: Refactor to nonglobal Viper, i18n etc.
This is a final rewrite that removes all the global state in Hugo, which also enables the use if `t.Parallel` in tests. Updates #2701 Fixes #3016
Diffstat (limited to 'config')
-rw-r--r--config/configProvider.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/config/configProvider.go b/config/configProvider.go
new file mode 100644
index 000000000..a2c8ebb6d
--- /dev/null
+++ b/config/configProvider.go
@@ -0,0 +1,40 @@
+// Copyright 2017-present The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package helpers implements general utility functions that work with
+// and on content. The helper functions defined here lay down the
+// foundation of how Hugo works with files and filepaths, and perform
+// string operations on content.
+package config
+
+// A cached version of the current ConfigProvider (language) and relatives. These globals
+// are unfortunate, but we still have some places that needs this that does
+// not have access to the site configuration.
+// These values will be set on initialization when rendering a new language.
+//
+// TODO(bep) Get rid of these.
+var (
+ currentConfigProvider Provider
+)
+
+// Provider provides the configuration settings for Hugo.
+type Provider interface {
+ GetString(key string) string
+ GetInt(key string) int
+ GetBool(key string) bool
+ GetStringMap(key string) map[string]interface{}
+ GetStringMapString(key string) map[string]string
+ Get(key string) interface{}
+ Set(key string, value interface{})
+ IsSet(key string) bool
+}