shithub: hugo

Download patch

ref: db3c49d049193e0fc225fe4bdb95712c311d6615
parent: e3cb8e6c7874d7dfe1d4d1c7f5c9765b681fb647
author: Anton Harniakou <[email protected]>
date: Sun Jan 13 07:44:38 EST 2019

Make hugo server -t work again

This commit solves an issue where hugo would ignore the cli -t flag
and only use a theme defined in config.toml.

Also allow -t flag to accept a string slice.

Closes #5569
Closes #5061
Related #4868

--- a/commands/commands.go
+++ b/commands/commands.go
@@ -250,7 +250,7 @@
 	cmd.Flags().StringP("cacheDir", "", "", "filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/")
 	cmd.Flags().BoolP("ignoreCache", "", false, "ignores the cache directory")
 	cmd.Flags().StringP("destination", "d", "", "filesystem path to write files to")
-	cmd.Flags().StringP("theme", "t", "", "theme to use (located in /themes/THEMENAME/)")
+	cmd.Flags().StringSliceP("theme", "t", []string{}, "themes to use (located in /themes/THEMENAME/)")
 	cmd.Flags().StringP("themesDir", "", "", "filesystem path to themes directory")
 	cmd.Flags().StringVarP(&cc.baseURL, "baseURL", "b", "", "hostname (and path) to the root, e.g. http://spf13.com/")
 	cmd.Flags().Bool("enableGitInfo", false, "add Git revision, date and author info to the pages")
--- a/commands/commands_test.go
+++ b/commands/commands_test.go
@@ -104,7 +104,7 @@
 		assert.Equal("/tmp/mydestination", cfg.GetString("publishDir"))
 		assert.Equal("mycontent", cfg.GetString("contentDir"))
 		assert.Equal("mylayouts", cfg.GetString("layoutDir"))
-		assert.Equal("mytheme", cfg.GetString("theme"))
+		assert.Equal([]string{"mytheme"}, cfg.GetStringSlice("theme"))
 		assert.Equal("mythemes", cfg.GetString("themesDir"))
 		assert.Equal("https://example.com/b/", cfg.GetString("baseURL"))
 
--- a/hugolib/paths/paths.go
+++ b/hugolib/paths/paths.go
@@ -176,7 +176,7 @@
 		PaginatePath: cfg.GetString("paginatePath"),
 	}
 
-	if cfg.IsSet("allThemes") {
+	if !cfg.IsSet("theme") && cfg.IsSet("allThemes") {
 		p.AllThemes = cfg.Get("allThemes").([]ThemeConfig)
 	} else {
 		p.AllThemes, err = collectThemeNames(p)