shithub: hugo

Download patch

ref: 1921a70ab1a8761917bea8c74afaa790719fe958
parent: f0eecc6a4f541838e9930c98bc982546f65c7a4f
author: Alexander Borsuk <[email protected]>
date: Wed Jan 10 13:53:40 EST 2018

Revert "Remove the --cleanDestinationDir flag", there is a better fix.

This reverts commit 768ec5df9fa8f91610ee80a9e6194f94a7dbe117.

--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -237,6 +237,7 @@
 // initHugoBuildCommonFlags initialize common flags related to the Hugo build.
 // Called by initHugoBuilderFlags.
 func initHugoBuildCommonFlags(cmd *cobra.Command) {
+	cmd.Flags().Bool("cleanDestinationDir", false, "remove files from destination not found in static directories")
 	cmd.Flags().BoolP("buildDrafts", "D", false, "include content marked as draft")
 	cmd.Flags().BoolP("buildFuture", "F", false, "include content with publishdate in the future")
 	cmd.Flags().BoolP("buildExpired", "E", false, "include expired content")
@@ -483,6 +484,7 @@
 func (c *commandeer) initializeFlags(cmd *cobra.Command) {
 	persFlagKeys := []string{"debug", "verbose", "logFile"}
 	flagKeys := []string{
+		"cleanDestinationDir",
 		"buildDrafts",
 		"buildFuture",
 		"buildExpired",
@@ -722,6 +724,9 @@
 	syncer.NoChmod = c.Cfg.GetBool("noChmod")
 	syncer.SrcFs = fs
 	syncer.DestFs = c.Fs.Destination
+	// Now that we are using a unionFs for the static directories
+	// We can effectively clean the publishDir on initial sync
+	syncer.Delete = c.Cfg.GetBool("cleanDestinationDir")
 
 	if syncer.Delete {
 		c.Logger.INFO.Println("removing all files from destination that don't exist in static dirs")
--- a/hugolib/config.go
+++ b/hugolib/config.go
@@ -164,6 +164,7 @@
 		return err
 	}
 
+	v.SetDefault("cleanDestinationDir", false)
 	v.SetDefault("watch", false)
 	v.SetDefault("metaDataFormat", "toml")
 	v.SetDefault("disable404", false)