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
This commit is contained in:
Garry McNulty authored and Bjørn Erik Pedersen committed 2018-07-15 16:13:48 +02:00
1 parent 2f2bc7ff70
commit 38204c4ab6
2 files changed
+7

No files matched your search

+5
View File
@@ -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
+2
View File
@@ -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) {