Fix setting HUGO_MODULE_PROXY etc. via env vars

Fixes #7903
This commit is contained in:
Bjørn Erik Pedersen 2020-10-29 16:22:35 +01:00
parent 6d95dc9d74
commit 8a1c637c44
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
4 changed files with 32 additions and 1 deletions

View file

@ -37,7 +37,11 @@ func getNested(m map[string]interface{}, indices []string) (interface{}, string,
first := indices[0] first := indices[0]
v, found := m[strings.ToLower(cast.ToString(first))] v, found := m[strings.ToLower(cast.ToString(first))]
if !found { if !found {
if len(indices) == 1 {
return nil, first, m
}
return nil, "", nil return nil, "", nil
} }
if len(indices) == 1 { if len(indices) == 1 {

View file

@ -47,5 +47,29 @@ func TestGetNestedParam(t *testing.T) {
c.Assert(must("nested_color", "_", m), qt.Equals, "blue") c.Assert(must("nested_color", "_", m), qt.Equals, "blue")
c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green") c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green")
c.Assert(must("string.name", ".", m), qt.IsNil) c.Assert(must("string.name", ".", m), qt.IsNil)
c.Assert(must("nested.foo", ".", m), qt.IsNil)
}
// https://github.com/gohugoio/hugo/issues/7903
func TestGetNestedParamFnNestedNewKey(t *testing.T) {
c := qt.New(t)
nested := map[string]interface{}{
"color": "blue",
}
m := map[string]interface{}{
"nested": nested,
}
existing, nestedKey, owner, err := GetNestedParamFn("nested.new", ".", func(key string) interface{} {
return m[key]
})
c.Assert(err, qt.IsNil)
c.Assert(existing, qt.IsNil)
c.Assert(nestedKey, qt.Equals, "new")
c.Assert(owner, qt.DeepEquals, nested)
} }

View file

@ -198,6 +198,8 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
} else { } else {
v.Set(key, val) v.Set(key, val)
} }
} else if nestedKey != "" {
owner[nestedKey] = valStr
} else { } else {
v.Set(key, valStr) v.Set(key, valStr)
} }

View file

@ -495,7 +495,6 @@ stringSlice = ["a", "b"]
[imaging] [imaging]
anchor = "smart" anchor = "smart"
quality = 75 quality = 75
resamplefilter = "CatmullRom"
` `
b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig) b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig)
@ -505,6 +504,7 @@ resamplefilter = "CatmullRom"
"HUGO_NEW", "new", // key not in config.toml "HUGO_NEW", "new", // key not in config.toml
"HUGO_ENABLEGITINFO", "false", "HUGO_ENABLEGITINFO", "false",
"HUGO_IMAGING_ANCHOR", "top", "HUGO_IMAGING_ANCHOR", "top",
"HUGO_IMAGING_RESAMPLEFILTER", "CatmullRom",
"HUGO_STRINGSLICE", `["c", "d"]`, "HUGO_STRINGSLICE", `["c", "d"]`,
"HUGO_INTSLICE", `[5, 8, 9]`, "HUGO_INTSLICE", `[5, 8, 9]`,
"HUGO_FLOATSLICE", `[5.32]`, "HUGO_FLOATSLICE", `[5.32]`,
@ -519,6 +519,7 @@ resamplefilter = "CatmullRom"
c.Assert(cfg.Get("new"), qt.Equals, "new") c.Assert(cfg.Get("new"), qt.Equals, "new")
c.Assert(cfg.Get("imaging.anchor"), qt.Equals, "top") c.Assert(cfg.Get("imaging.anchor"), qt.Equals, "top")
c.Assert(cfg.Get("imaging.quality"), qt.Equals, int64(75)) c.Assert(cfg.Get("imaging.quality"), qt.Equals, int64(75))
c.Assert(cfg.Get("imaging.resamplefilter"), qt.Equals, "CatmullRom")
c.Assert(cfg.Get("stringSlice"), qt.DeepEquals, []interface{}{"c", "d"}) c.Assert(cfg.Get("stringSlice"), qt.DeepEquals, []interface{}{"c", "d"})
c.Assert(cfg.Get("floatSlice"), qt.DeepEquals, []interface{}{5.32}) c.Assert(cfg.Get("floatSlice"), qt.DeepEquals, []interface{}{5.32})
c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9}) c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9})