hugo

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

git clone git://git.shimmy1996.com/hugo.git
commit b60ae35b97c4f44b9b09fcf06c863c695bc3c73a
parent 003ba5b10f80cdba7151505d9e33b6d96b63a297
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Fri, 29 Nov 2019 10:50:36 +0100

hugolib: Fix timeout number parsing for YAML/JSON config

Where numbers are all floats.

Fixes #6555

Diffstat:
Mhugolib/image_test.go | 4++--
Mhugolib/site.go | 10+++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/hugolib/image_test.go b/hugolib/image_test.go
@@ -36,7 +36,7 @@ func TestImageOps(t *testing.T) {
 	c.Assert(err, qt.IsNil)
 	defer clean()
 
-	newBuilder := func(timeout string) *sitesBuilder {
+	newBuilder := func(timeout interface{}) *sitesBuilder {
 
 		v := viper.New()
 		v.Set("workingDir", workDir)
@@ -152,7 +152,7 @@ IMG SHORTCODE: /images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_129x239_r
 		c.Assert(err, qt.Not(qt.IsNil))
 	}
 
-	b = newBuilder("30s")
+	b = newBuilder(29000)
 	b.Build(BuildCfg{})
 
 	assertImages()
diff --git a/hugolib/site.go b/hugolib/site.go
@@ -413,11 +413,11 @@ func newSite(cfg deps.DepsCfg) (*Site, error) {
 
 	timeout := 30 * time.Second
 	if cfg.Language.IsSet("timeout") {
-		switch v := cfg.Language.Get("timeout").(type) {
-		case int64:
-			timeout = time.Duration(v) * time.Millisecond
-		case string:
-			d, err := time.ParseDuration(v)
+		v := cfg.Language.Get("timeout")
+		if n := cast.ToInt(v); n > 0 {
+			timeout = time.Duration(n) * time.Millisecond
+		} else {
+			d, err := time.ParseDuration(cast.ToString(v))
 			if err == nil {
 				timeout = d
 			}