shithub: hugo

Download patch

ref: be0d9770095a6497a69a610783a5710982591084
parent: bee52f85aee6383b357406baa9ba1e3b725a5a80
author: bep <[email protected]>
date: Wed Apr 15 22:27:37 EDT 2015

Only write highlight to cache when CacheDir is set

To avoid writing cache files when testing.

--- a/helpers/pygments.go
+++ b/helpers/pygments.go
@@ -60,29 +60,34 @@
 	io.WriteString(hash, lang)
 	io.WriteString(hash, options)
 
-	cachefile := filepath.Join(viper.GetString("CacheDir"), fmt.Sprintf("pygments-%x", hash.Sum(nil)))
-
 	fs := hugofs.OsFs
 
-	exists, err := Exists(cachefile, fs)
-	if err != nil {
-		jww.ERROR.Print(err.Error())
-		return code
-	}
-	if exists {
-		f, err := fs.Open(cachefile)
-		if err != nil {
-			jww.ERROR.Print(err.Error())
-			return code
-		}
+	cacheDir := viper.GetString("CacheDir")
+	var cachefile string
 
-		s, err := ioutil.ReadAll(f)
+	if cacheDir != "" {
+		cachefile = filepath.Join(cacheDir, fmt.Sprintf("pygments-%x", hash.Sum(nil)))
+
+		exists, err := Exists(cachefile, fs)
 		if err != nil {
 			jww.ERROR.Print(err.Error())
 			return code
 		}
+		if exists {
+			f, err := fs.Open(cachefile)
+			if err != nil {
+				jww.ERROR.Print(err.Error())
+				return code
+			}
 
-		return string(s)
+			s, err := ioutil.ReadAll(f)
+			if err != nil {
+				jww.ERROR.Print(err.Error())
+				return code
+			}
+
+			return string(s)
+		}
 	}
 
 	// No cache file, render and cache it
@@ -99,9 +104,11 @@
 		return code
 	}
 
-	// Write cache file
-	if err := WriteToDisk(cachefile, bytes.NewReader(out.Bytes()), fs); err != nil {
-		jww.ERROR.Print(stderr.String())
+	if cachefile != "" {
+		// Write cache file
+		if err := WriteToDisk(cachefile, bytes.NewReader(out.Bytes()), fs); err != nil {
+			jww.ERROR.Print(stderr.String())
+		}
 	}
 
 	return out.String()