shithub: hugo

Download patch

ref: 24cb0d1f5801cc8b4dcbbf99ffb463e2e02c5dd3
parent: 5d50c46482d231efa26c95e4705e720fb9bf753c
author: Robert Basic <[email protected]>
date: Sun Apr 10 08:11:18 EDT 2016

tpl: Do not write to cache when ignoring cache

Fixes #2067
Closes #2069

--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -222,7 +222,7 @@
 	cmd.Flags().StringVarP(&contentDir, "contentDir", "c", "", "filesystem path to content directory")
 	cmd.Flags().StringVarP(&layoutDir, "layoutDir", "l", "", "filesystem path to layout directory")
 	cmd.Flags().StringVarP(&cacheDir, "cacheDir", "", "", "filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/")
-	cmd.Flags().BoolVarP(&ignoreCache, "ignoreCache", "", false, "Ignores the cache directory for reading but still writes to it")
+	cmd.Flags().BoolVarP(&ignoreCache, "ignoreCache", "", false, "Ignores the cache directory")
 	cmd.Flags().StringVarP(&destination, "destination", "d", "", "filesystem path to write files to")
 	cmd.Flags().StringVarP(&theme, "theme", "t", "", "theme to use (located in /themes/THEMENAME/)")
 	cmd.Flags().BoolVar(&uglyURLs, "uglyURLs", false, "if true, use /filename.html instead of /filename/")
--- a/docs/content/extras/datadrivencontent.md
+++ b/docs/content/extras/datadrivencontent.md
@@ -103,9 +103,8 @@
 With the command-line flag `--cacheDir`, you can specify any folder on
 your system as a caching directory.
 
-If you don't like caching at all, you can fully disable to read from the
-cache with the command line flag `--ignoreCache`. However, Hugo will always
-write, on each build of the site, to the cache folder (silent backup).
+If you don't like caching at all, you can fully disable caching with the
+command line flag `--ignoreCache`.
 
 ### Authentication when using REST URLs
 
--- a/docs/content/overview/usage.md
+++ b/docs/content/overview/usage.md
@@ -48,7 +48,7 @@
       --disableSitemap=false: Do not build Sitemap file
       --editor="": edit new content with this editor, if provided
   -h, --help=false: help for hugo
-      --ignoreCache=false: Ignores the cache directory for reading but still writes to it
+      --ignoreCache=false: Ignores the cache directory
       --log=false: Enable Logging
       --logFile="": Log File path (if set, logging enabled automatically)
       --noTimes=false: Don't sync modification time of files
--- a/tpl/template_resources.go
+++ b/tpl/template_resources.go
@@ -92,7 +92,10 @@
 }
 
 // resWriteCache writes bytes to an ID into the file cache
-func resWriteCache(id string, c []byte, fs afero.Fs) error {
+func resWriteCache(id string, c []byte, fs afero.Fs, ignoreCache bool) error {
+	if ignoreCache {
+		return nil
+	}
 	fID := getCacheFileID(id)
 	f, err := fs.Create(fID)
 	if err != nil {
@@ -147,7 +150,7 @@
 	if err != nil {
 		return nil, err
 	}
-	err = resWriteCache(url, c, fs)
+	err = resWriteCache(url, c, fs, viper.GetBool("IgnoreCache"))
 	if err != nil {
 		return nil, err
 	}
--- a/tpl/template_resources_test.go
+++ b/tpl/template_resources_test.go
@@ -58,7 +58,7 @@
 			t.Errorf("There is content where there should not be anything: %s", string(c))
 		}
 
-		err = resWriteCache(test.path, test.content, fs)
+		err = resWriteCache(test.path, test.content, fs, test.ignore)
 		if err != nil {
 			t.Errorf("Error writing cache: %s", err)
 		}