mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-23 21:53:09 +02:00
Misc config loading fixes
The main motivation behind this is simplicity and correctnes, but the new small config library is also faster: ``` BenchmarkDefaultConfigProvider/Viper-16 252418 4546 ns/op 2720 B/op 30 allocs/op BenchmarkDefaultConfigProvider/Custom-16 450756 2651 ns/op 1008 B/op 6 allocs/op ``` Fixes #8633 Fixes #8618 Fixes #8630 Updates #8591 Closes #6680 Closes #5192
This commit is contained in:
@@ -374,7 +374,8 @@ func newHugoSites(cfg deps.DepsCfg, sites ...*Site) (*HugoSites, error) {
|
||||
s.h = h
|
||||
}
|
||||
|
||||
if err := applyDeps(cfg, sites...); err != nil {
|
||||
var l configLoader
|
||||
if err := l.applyDeps(cfg, sites...); err != nil {
|
||||
return nil, errors.Wrap(err, "add site dependencies")
|
||||
}
|
||||
|
||||
@@ -407,7 +408,7 @@ func (h *HugoSites) loadGitInfo() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func applyDeps(cfg deps.DepsCfg, sites ...*Site) error {
|
||||
func (l configLoader) applyDeps(cfg deps.DepsCfg, sites ...*Site) error {
|
||||
if cfg.TemplateProvider == nil {
|
||||
cfg.TemplateProvider = tplimpl.DefaultTemplateProvider
|
||||
}
|
||||
@@ -446,7 +447,7 @@ func applyDeps(cfg deps.DepsCfg, sites ...*Site) error {
|
||||
|
||||
d.Site = s.Info
|
||||
|
||||
siteConfig, err := loadSiteConfig(s.language)
|
||||
siteConfig, err := l.loadSiteConfig(s.language)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "load site config")
|
||||
}
|
||||
@@ -607,11 +608,12 @@ func (h *HugoSites) withSite(fn func(s *Site) error) error {
|
||||
func (h *HugoSites) createSitesFromConfig(cfg config.Provider) error {
|
||||
oldLangs, _ := h.Cfg.Get("languagesSorted").(langs.Languages)
|
||||
|
||||
if err := loadLanguageSettings(h.Cfg, oldLangs); err != nil {
|
||||
l := configLoader{cfg: h.Cfg}
|
||||
if err := l.loadLanguageSettings(oldLangs); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
depsCfg := deps.DepsCfg{Fs: h.Fs, Cfg: cfg}
|
||||
depsCfg := deps.DepsCfg{Fs: h.Fs, Cfg: l.cfg}
|
||||
|
||||
sites, err := createSitesFromConfig(depsCfg)
|
||||
if err != nil {
|
||||
@@ -629,7 +631,8 @@ func (h *HugoSites) createSitesFromConfig(cfg config.Provider) error {
|
||||
s.h = h
|
||||
}
|
||||
|
||||
if err := applyDeps(depsCfg, sites...); err != nil {
|
||||
var cl configLoader
|
||||
if err := cl.applyDeps(depsCfg, sites...); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user