summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-04-07 11:27:22 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-04-07 16:40:45 +0200
commit080302eb8757fd94ccbd6bf99103432cd98e716c (patch)
tree33816529e01bbdb3e3ad501de9ab2281058fc551 /hugolib
parent094ec171420e659cdf962a19dd90105912ce9901 (diff)
Fix handling of --contentDir etc. flag
We need to revisit the commands package re globals and tests, but this should fix the init order of flags and languages. Fixes #4589
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/config.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/hugolib/config.go b/hugolib/config.go
index 9f206bc77..b166e7729 100644
--- a/hugolib/config.go
+++ b/hugolib/config.go
@@ -54,7 +54,7 @@ func LoadConfigDefault(fs afero.Fs) (*viper.Viper, error) {
// LoadConfig loads Hugo configuration into a new Viper and then adds
// a set of defaults.
-func LoadConfig(d ConfigSourceDescriptor) (*viper.Viper, []string, error) {
+func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provider) error) (*viper.Viper, []string, error) {
var configFiles []string
fs := d.Fs
@@ -108,6 +108,14 @@ func LoadConfig(d ConfigSourceDescriptor) (*viper.Viper, []string, error) {
configFiles = append(configFiles, themeConfigFile)
}
+ // We create languages based on the settings, so we need to make sure that
+ // all configuration is loaded/set before doing that.
+ for _, d := range doWithConfig {
+ if err := d(v); err != nil {
+ return v, configFiles, err
+ }
+ }
+
if err := loadLanguageSettings(v, nil); err != nil {
return v, configFiles, err
}