shithub: hugo

Download patch

ref: c4a116558725ab885b7d303e0924cf2b35c9ba79
parent: e77bb13c201770929be6b5caf413be48ecbe1d8f
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Apr 6 13:39:20 EDT 2017

all: Handle all errors

As reported by `errcheck`.

--- a/commands/gendoc.go
+++ b/commands/gendoc.go
@@ -53,7 +53,9 @@
 		}
 		if found, _ := helpers.Exists(gendocdir, hugofs.Os); !found {
 			jww.FEEDBACK.Println("Directory", gendocdir, "does not exist, creating...")
-			hugofs.Os.MkdirAll(gendocdir, 0777)
+			if err := hugofs.Os.MkdirAll(gendocdir, 0777); err != nil {
+				return err
+			}
 		}
 		now := time.Now().Format(time.RFC3339)
 		prepender := func(filename string) string {
--- a/commands/genman.go
+++ b/commands/genman.go
@@ -43,7 +43,9 @@
 		}
 		if found, _ := helpers.Exists(genmandir, hugofs.Os); !found {
 			jww.FEEDBACK.Println("Directory", genmandir, "does not exist, creating...")
-			hugofs.Os.MkdirAll(genmandir, 0777)
+			if err := hugofs.Os.MkdirAll(genmandir, 0777); err != nil {
+				return err
+			}
 		}
 		cmd.Root().DisableAutoGenTag = true
 
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -211,7 +211,7 @@
 
 	// Set bash-completion
 	validConfigFilenames := []string{"json", "js", "yaml", "yml", "toml", "tml"}
-	HugoCmd.PersistentFlags().SetAnnotation("config", cobra.BashCompFilenameExt, validConfigFilenames)
+	_ = HugoCmd.PersistentFlags().SetAnnotation("config", cobra.BashCompFilenameExt, validConfigFilenames)
 }
 
 // initHugoBuildCommonFlags initialize common flags related to the Hugo build.
@@ -249,10 +249,10 @@
 
 	// Set bash-completion.
 	// Each flag must first be defined before using the SetAnnotation() call.
-	cmd.Flags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
-	cmd.Flags().SetAnnotation("cacheDir", cobra.BashCompSubdirsInDir, []string{})
-	cmd.Flags().SetAnnotation("destination", cobra.BashCompSubdirsInDir, []string{})
-	cmd.Flags().SetAnnotation("theme", cobra.BashCompSubdirsInDir, []string{"themes"})
+	_ = cmd.Flags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
+	_ = cmd.Flags().SetAnnotation("cacheDir", cobra.BashCompSubdirsInDir, []string{})
+	_ = cmd.Flags().SetAnnotation("destination", cobra.BashCompSubdirsInDir, []string{})
+	_ = cmd.Flags().SetAnnotation("theme", cobra.BashCompSubdirsInDir, []string{"themes"})
 }
 
 func initBenchmarkBuildingFlags(cmd *cobra.Command) {
@@ -274,7 +274,7 @@
 	hugoCmdV = HugoCmd
 
 	// Set bash-completion
-	HugoCmd.PersistentFlags().SetAnnotation("logFile", cobra.BashCompFilenameExt, []string{})
+	_ = HugoCmd.PersistentFlags().SetAnnotation("logFile", cobra.BashCompFilenameExt, []string{})
 }
 
 // InitializeConfig initializes a config file with sensible default configuration flags.
@@ -384,7 +384,9 @@
 		config.Set("cacheDir", helpers.GetTempDir("hugo_cache", fs.Source))
 	}
 
-	c.initFs(fs)
+	if err := c.initFs(fs); err != nil {
+		return nil, err
+	}
 
 	cfg.Logger.INFO.Println("Using config file:", viper.ConfigFileUsed())
 
@@ -682,17 +684,18 @@
 		return nil
 	}
 
-	helpers.SymbolicWalk(c.Fs.Source, dataDir, walker)
-	helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("contentDir")), walker)
-	helpers.SymbolicWalk(c.Fs.Source, i18nDir, walker)
-	helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("layoutDir")), walker)
+	// SymbolicWalk will log anny ERRORs
+	_ = helpers.SymbolicWalk(c.Fs.Source, dataDir, walker)
+	_ = helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("contentDir")), walker)
+	_ = helpers.SymbolicWalk(c.Fs.Source, i18nDir, walker)
+	_ = helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("layoutDir")), walker)
 
-	helpers.SymbolicWalk(c.Fs.Source, staticDir, walker)
+	_ = helpers.SymbolicWalk(c.Fs.Source, staticDir, walker)
 	if c.PathSpec().ThemeSet() {
-		helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "layouts"), walker)
-		helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "static"), walker)
-		helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "i18n"), walker)
-		helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "data"), walker)
+		_ = helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "layouts"), walker)
+		_ = helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "static"), walker)
+		_ = helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "i18n"), walker)
+		_ = helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "data"), walker)
 
 	}
 
@@ -824,7 +827,9 @@
 					walkAdder := func(path string, f os.FileInfo, err error) error {
 						if f.IsDir() {
 							c.Logger.FEEDBACK.Println("adding created directory to watchlist", path)
-							watcher.Add(path)
+							if err := watcher.Add(path); err != nil {
+								return err
+							}
 						}
 						return nil
 					}
@@ -833,7 +838,7 @@
 					// When mkdir -p is used, only the top directory triggers an event (at least on OSX)
 					if ev.Op&fsnotify.Create == fsnotify.Create {
 						if s, err := c.Fs.Source.Stat(ev.Name); err == nil && s.Mode().IsDir() {
-							helpers.SymbolicWalk(c.Fs.Source, ev.Name, walkAdder)
+							_ = helpers.SymbolicWalk(c.Fs.Source, ev.Name, walkAdder)
 						}
 					}
 
@@ -921,7 +926,7 @@
 									// If file doesn't exist in any static dir, remove it
 									toRemove := filepath.Join(publishDir, relPath)
 									logger.Println("File no longer exists in static dir, removing", toRemove)
-									c.Fs.Destination.RemoveAll(toRemove)
+									_ = c.Fs.Destination.RemoveAll(toRemove)
 								} else if err == nil {
 									// If file still exists, sync it
 									logger.Println("Syncing", relPath, "to", publishDir)
--- a/hugolib/hugo_sites.go
+++ b/hugolib/hugo_sites.go
@@ -551,7 +551,9 @@
 					p.Content = helpers.BytesToHTML(workContentCopy)
 
 					if summaryContent == nil {
-						p.setAutoSummary()
+						if err := p.setAutoSummary(); err != nil {
+							s.Log.ERROR.Printf("Failed to set user auto summary for page %q: %s", p.pathOrTitle(), err)
+						}
 					}
 
 				} else {
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -637,7 +637,7 @@
 func (s *Site) RegisterMediaTypes() {
 	for _, mt := range s.mediaTypesConfig {
 		// The last one will win if there are any duplicates.
-		mime.AddExtensionType("."+mt.Suffix, mt.Type()+"; charset=utf-8")
+		_ = mime.AddExtensionType("."+mt.Suffix, mt.Type()+"; charset=utf-8")
 	}
 }
 
@@ -709,7 +709,9 @@
 	}
 
 	if len(dataChanged) > 0 {
-		s.readDataFromSourceFS()
+		if err := s.readDataFromSourceFS(); err != nil {
+			s.Log.ERROR.Println(err)
+		}
 	}
 
 	// If a content file changes, we need to reload only it and re-render the entire site.
@@ -1895,7 +1897,10 @@
 		path = []byte(s)
 	}
 	transformer := transform.NewChain(transform.AbsURLInXML)
-	transformer.Apply(outBuffer, renderBuffer, path)
+	if err := transformer.Apply(outBuffer, renderBuffer, path); err != nil {
+		helpers.DistinctErrorLog.Println(err)
+		return nil
+	}
 
 	return s.publish(dest, outBuffer)
 
@@ -1943,7 +1948,10 @@
 	}
 
 	transformer := transform.NewChain(transformLinks...)
-	transformer.Apply(outBuffer, renderBuffer, path)
+	if err := transformer.Apply(outBuffer, renderBuffer, path); err != nil {
+		helpers.DistinctErrorLog.Println(err)
+		return nil
+	}
 
 	return s.publish(dest, outBuffer)
 }
--- a/hugolib/site_render.go
+++ b/hugolib/site_render.go
@@ -147,7 +147,9 @@
 
 		// TODO(bep) output do better
 		link := newOutputFormat(p.Page, p.outputFormat).Permalink()
-		s.writeDestAlias(target, link, nil)
+		if err := s.writeDestAlias(target, link, nil); err != nil {
+			return err
+		}
 
 		pagers := p.paginator.Pagers()
 
--- a/transform/hugogeneratorinject.go
+++ b/transform/hugogeneratorinject.go
@@ -27,7 +27,9 @@
 // HugoGeneratorInject injects a meta generator tag for Hugo if none present.
 func HugoGeneratorInject(ct contentTransformer) {
 	if metaTagsCheck.Match(ct.Content()) {
-		ct.Write(ct.Content())
+		if _, err := ct.Write(ct.Content()); err != nil {
+			helpers.DistinctWarnLog.Println("Failed to inject Hugo generator tag:", err)
+		}
 		return
 	}
 
@@ -41,5 +43,8 @@
 		newcontent = bytes.Replace(ct.Content(), []byte(head), replace, 1)
 	}
 
-	ct.Write(newcontent)
+	if _, err := ct.Write(newcontent); err != nil {
+		helpers.DistinctWarnLog.Println("Failed to inject Hugo generator tag:", err)
+	}
+
 }