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:
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
}