hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 8a1c637c4494751046142e0ef345fce38fc1431b
parent 6d95dc9d74681cba53b46e79c6e1d58d27fcdfb0
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Thu, 29 Oct 2020 16:22:35 +0100

Fix setting HUGO_MODULE_PROXY etc. via env vars

Fixes #7903

Diffstat:
Mcommon/maps/params.go | 4++++
Mcommon/maps/params_test.go | 24++++++++++++++++++++++++
Mhugolib/config.go | 2++
Mhugolib/config_test.go | 3++-
4 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/common/maps/params.go b/common/maps/params.go
@@ -37,7 +37,11 @@ func getNested(m map[string]interface{}, indices []string) (interface{}, string,
 	first := indices[0]
 	v, found := m[strings.ToLower(cast.ToString(first))]
 	if !found {
+		if len(indices) == 1 {
+			return nil, first, m
+		}
 		return nil, "", nil
+
 	}
 
 	if len(indices) == 1 {
diff --git a/common/maps/params_test.go b/common/maps/params_test.go
@@ -47,5 +47,29 @@ func TestGetNestedParam(t *testing.T) {
 	c.Assert(must("nested_color", "_", m), qt.Equals, "blue")
 	c.Assert(must("nested.nestednested.color", ".", m), qt.Equals, "green")
 	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)
 
 }
diff --git a/hugolib/config.go b/hugolib/config.go
@@ -198,6 +198,8 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
 					} else {
 						v.Set(key, val)
 					}
+				} else if nestedKey != "" {
+					owner[nestedKey] = valStr
 				} else {
 					v.Set(key, valStr)
 				}
diff --git a/hugolib/config_test.go b/hugolib/config_test.go
@@ -495,7 +495,6 @@ stringSlice = ["a", "b"]
 [imaging]
 anchor = "smart"
 quality = 75 
-resamplefilter = "CatmullRom"
 `
 
 	b := newTestSitesBuilder(t).WithConfigFile("toml", baseConfig)
@@ -505,6 +504,7 @@ resamplefilter = "CatmullRom"
 		"HUGO_NEW", "new", // key not in config.toml
 		"HUGO_ENABLEGITINFO", "false",
 		"HUGO_IMAGING_ANCHOR", "top",
+		"HUGO_IMAGING_RESAMPLEFILTER", "CatmullRom",
 		"HUGO_STRINGSLICE", `["c", "d"]`,
 		"HUGO_INTSLICE", `[5, 8, 9]`,
 		"HUGO_FLOATSLICE", `[5.32]`,
@@ -519,6 +519,7 @@ resamplefilter = "CatmullRom"
 	c.Assert(cfg.Get("new"), qt.Equals, "new")
 	c.Assert(cfg.Get("imaging.anchor"), qt.Equals, "top")
 	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("floatSlice"), qt.DeepEquals, []interface{}{5.32})
 	c.Assert(cfg.Get("intSlice"), qt.DeepEquals, []interface{}{5, 8, 9})