shithub: hugo

Download patch

ref: 38204c4ab6fa2aa2ab8bd06ddb3e07b66e5f9646
parent: 2f2bc7ff70b90fb11580cc092ef3883bf68d8ad7
author: Garry McNulty <[email protected]>
date: Sun Jul 15 10:35:41 EDT 2018

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

--- a/hugolib/config.go
+++ b/hugolib/config.go
@@ -285,6 +285,11 @@
 	if err != nil {
 		return nil, err
 	}
+
+	if len(themeConfigs) == 0 {
+		return nil, nil
+	}
+
 	v1.Set("allThemes", themeConfigs)
 
 	var configFilenames []string
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -42,6 +42,8 @@
 	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) {