Only write highlight to cache when CacheDir is set
authorbep <bjorn.erik.pedersen@gmail.com>
Thu, 16 Apr 2015 00:27:37 +0000 (02:27 +0200)
committerbep <bjorn.erik.pedersen@gmail.com>
Thu, 16 Apr 2015 00:27:23 +0000 (02:27 +0200)
To avoid writing cache files when testing.

helpers/pygments.go

index 74327c6f505a7d8e7307c6a82fd5091181bb1b9e..11b0f23d486503ff0afc4f0cad7e2dbf534d99e8 100644 (file)
@@ -60,29 +60,34 @@ func Highlight(code, lang, optsStr string) string {
        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
                }
-
-               return string(s)
+               if exists {
+                       f, err := fs.Open(cachefile)
+                       if err != nil {
+                               jww.ERROR.Print(err.Error())
+                               return code
+                       }
+
+                       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 @@ func Highlight(code, lang, optsStr string) string {
                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()