hugo

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

git clone git://git.shimmy1996.com/hugo.git
commit 38204c4ab6fa2aa2ab8bd06ddb3e07b66e5f9646
parent 2f2bc7ff70b90fb11580cc092ef3883bf68d8ad7
Author: Garry McNulty <garrmcnu@gmail.com>
Date:   Sun, 15 Jul 2018 14:35:41 +0100

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

Diffstat:
Mhugolib/config.go | 5+++++
Mhugolib/config_test.go | 2++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git 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
@@ -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) {