From: Garry McNulty Date: Sun, 15 Jul 2018 13:35:41 +0000 (+0100) Subject: hugolib: Only set 'allThemes' if there are themes in the config file X-Git-Tag: v0.45~36 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=38204c4ab6fa2aa2ab8bd06ddb3e07b66e5f9646;p=brevno-suite%2Fhugo hugolib: Only set 'allThemes' if there are themes in the config file When the 'allThemes' configuration setting is read, it will panic if there are no themes. This was a regression introduced in Hugo 0.42. Also updated a unit test to check for this. Fixes #4851 --- diff --git a/hugolib/config.go b/hugolib/config.go index 87f97f3a..122bd3f1 100644 --- a/hugolib/config.go +++ b/hugolib/config.go @@ -285,6 +285,11 @@ func loadThemeConfig(d ConfigSourceDescriptor, v1 *viper.Viper) ([]string, error if err != nil { return nil, err } + + if len(themeConfigs) == 0 { + return nil, nil + } + v1.Set("allThemes", themeConfigs) var configFilenames []string diff --git a/hugolib/config_test.go b/hugolib/config_test.go index 2fa26d4f..0fe69280 100644 --- a/hugolib/config_test.go +++ b/hugolib/config_test.go @@ -42,6 +42,8 @@ func TestLoadConfig(t *testing.T) { assert.Equal("side", cfg.GetString("paginatePath")) // default assert.Equal("layouts", cfg.GetString("layoutDir")) + // no themes + assert.False(cfg.IsSet("allThemes")) } func TestLoadMultiConfig(t *testing.T) {