From 24cb0d1f5801cc8b4dcbbf99ffb463e2e02c5dd3 Mon Sep 17 00:00:00 2001 From: Robert Basic Date: Sun, 10 Apr 2016 12:11:18 +0200 Subject: [PATCH] tpl: Do not write to cache when ignoring cache Fixes #2067 Closes #2069 --- commands/hugo.go | 2 +- docs/content/extras/datadrivencontent.md | 5 ++--- docs/content/overview/usage.md | 2 +- tpl/template_resources.go | 7 +++++-- tpl/template_resources_test.go | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/commands/hugo.go b/commands/hugo.go index ce7970afc..7cb1a4fc3 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -222,7 +222,7 @@ func initHugoBuildCommonFlags(cmd *cobra.Command) { 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/") diff --git a/docs/content/extras/datadrivencontent.md b/docs/content/extras/datadrivencontent.md index 4a419c849..a1cef524c 100644 --- a/docs/content/extras/datadrivencontent.md +++ b/docs/content/extras/datadrivencontent.md @@ -103,9 +103,8 @@ temporary directory. 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 diff --git a/docs/content/overview/usage.md b/docs/content/overview/usage.md index c570a7b10..3fd74db55 100644 --- a/docs/content/overview/usage.md +++ b/docs/content/overview/usage.md @@ -48,7 +48,7 @@ Flags: --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 diff --git a/tpl/template_resources.go b/tpl/template_resources.go index 76a83a87f..07451734d 100644 --- a/tpl/template_resources.go +++ b/tpl/template_resources.go @@ -92,7 +92,10 @@ func resGetCache(id string, fs afero.Fs, ignoreCache bool) ([]byte, error) { } // 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 @@ func resGetRemote(url string, fs afero.Fs, hc *http.Client) ([]byte, error) { 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 } diff --git a/tpl/template_resources_test.go b/tpl/template_resources_test.go index d091595b0..909edc5d5 100644 --- a/tpl/template_resources_test.go +++ b/tpl/template_resources_test.go @@ -58,7 +58,7 @@ func TestScpCache(t *testing.T) { 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) }