Fix nested OS env config override when parent does not exist
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 8 Jun 2021 07:48:22 +0000 (09:48 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 8 Jun 2021 07:57:18 +0000 (09:57 +0200)
Fixes #8618

hugolib/config.go
hugolib/config_test.go

index 846cba83c0408edf958ad4565feaec9187e48695..eaa6710ae7da74910464867cd9f43a0f5d5f2cc0 100644 (file)
@@ -221,7 +221,7 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
                        } else if nestedKey != "" {
                                owner[nestedKey] = env.Value
                        } else {
-                               v.Set(env.Key, env.Value)
+                               v.Set(strings.ReplaceAll(env.Key, delim, "."), env.Value)
                        }
                }
 
index 9e01212c7adb2502b3a0dd0fb7ead0cfaf689823..fb81c927eb964054fa04f40a3eeea8311342673a 100644 (file)
@@ -530,11 +530,14 @@ theme_param="themevalue2"
                "HUGOxPARAMSxMYTHEME_SECTION2xTHEME_PARAM", "themevalue2_changed",
                "HUGO_PARAMS_EMPTY", ``,
                "HUGO_PARAMS_HTML", `<a target="_blank" />`,
+               //
+               "HUGO_SERVICES_GOOGLEANALYTICS_ID", `gaid`,
        )
 
        b.Build(BuildCfg{})
 
        cfg := b.H.Cfg
+       scfg := b.H.Sites[0].siteConfigConfig.Services
 
        c.Assert(cfg.Get("environment"), qt.Equals, "test")
        c.Assert(cfg.GetBool("enablegitinfo"), qt.Equals, false)
@@ -551,4 +554,6 @@ theme_param="themevalue2"
        c.Assert(cfg.Get("params.mytheme_section2.theme_param"), qt.Equals, "themevalue2_changed")
        c.Assert(cfg.Get("params.empty"), qt.Equals, ``)
        c.Assert(cfg.Get("params.html"), qt.Equals, `<a target="_blank" />`)
+
+       c.Assert(scfg.GoogleAnalytics.ID, qt.Equals, "gaid")
 }