all: Handle all errors

As reported by `errcheck`.
This commit is contained in:
Bjørn Erik Pedersen 2017-04-06 17:39:20 +02:00
parent e77bb13c20
commit c4a1165587
7 changed files with 55 additions and 29 deletions

View file

@ -53,7 +53,9 @@ for rendering in Hugo.`,
} }
if found, _ := helpers.Exists(gendocdir, hugofs.Os); !found { if found, _ := helpers.Exists(gendocdir, hugofs.Os); !found {
jww.FEEDBACK.Println("Directory", gendocdir, "does not exist, creating...") 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) now := time.Now().Format(time.RFC3339)
prepender := func(filename string) string { prepender := func(filename string) string {

View file

@ -43,7 +43,9 @@ in the "man" directory under the current directory.`,
} }
if found, _ := helpers.Exists(genmandir, hugofs.Os); !found { if found, _ := helpers.Exists(genmandir, hugofs.Os); !found {
jww.FEEDBACK.Println("Directory", genmandir, "does not exist, creating...") 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 cmd.Root().DisableAutoGenTag = true

View file

@ -211,7 +211,7 @@ func initRootPersistentFlags() {
// Set bash-completion // Set bash-completion
validConfigFilenames := []string{"json", "js", "yaml", "yml", "toml", "tml"} 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. // initHugoBuildCommonFlags initialize common flags related to the Hugo build.
@ -249,10 +249,10 @@ func initHugoBuildCommonFlags(cmd *cobra.Command) {
// Set bash-completion. // Set bash-completion.
// Each flag must first be defined before using the SetAnnotation() call. // Each flag must first be defined before using the SetAnnotation() call.
cmd.Flags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{}) _ = cmd.Flags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
cmd.Flags().SetAnnotation("cacheDir", cobra.BashCompSubdirsInDir, []string{}) _ = cmd.Flags().SetAnnotation("cacheDir", cobra.BashCompSubdirsInDir, []string{})
cmd.Flags().SetAnnotation("destination", cobra.BashCompSubdirsInDir, []string{}) _ = cmd.Flags().SetAnnotation("destination", cobra.BashCompSubdirsInDir, []string{})
cmd.Flags().SetAnnotation("theme", cobra.BashCompSubdirsInDir, []string{"themes"}) _ = cmd.Flags().SetAnnotation("theme", cobra.BashCompSubdirsInDir, []string{"themes"})
} }
func initBenchmarkBuildingFlags(cmd *cobra.Command) { func initBenchmarkBuildingFlags(cmd *cobra.Command) {
@ -274,7 +274,7 @@ func init() {
hugoCmdV = HugoCmd hugoCmdV = HugoCmd
// Set bash-completion // 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. // InitializeConfig initializes a config file with sensible default configuration flags.
@ -384,7 +384,9 @@ func InitializeConfig(subCmdVs ...*cobra.Command) (*deps.DepsCfg, error) {
config.Set("cacheDir", helpers.GetTempDir("hugo_cache", fs.Source)) 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()) cfg.Logger.INFO.Println("Using config file:", viper.ConfigFileUsed())
@ -682,17 +684,18 @@ func (c *commandeer) getDirList() []string {
return nil return nil
} }
helpers.SymbolicWalk(c.Fs.Source, dataDir, walker) // SymbolicWalk will log anny ERRORs
helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("contentDir")), walker) _ = helpers.SymbolicWalk(c.Fs.Source, dataDir, walker)
helpers.SymbolicWalk(c.Fs.Source, i18nDir, walker) _ = helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("contentDir")), walker)
helpers.SymbolicWalk(c.Fs.Source, c.PathSpec().AbsPathify(c.Cfg.GetString("layoutDir")), 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() { if c.PathSpec().ThemeSet() {
helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "layouts"), 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, "static"), walker)
helpers.SymbolicWalk(c.Fs.Source, filepath.Join(themesDir, "i18n"), 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, "data"), walker)
} }
@ -824,7 +827,9 @@ func (c *commandeer) newWatcher(port int) error {
walkAdder := func(path string, f os.FileInfo, err error) error { walkAdder := func(path string, f os.FileInfo, err error) error {
if f.IsDir() { if f.IsDir() {
c.Logger.FEEDBACK.Println("adding created directory to watchlist", path) c.Logger.FEEDBACK.Println("adding created directory to watchlist", path)
watcher.Add(path) if err := watcher.Add(path); err != nil {
return err
}
} }
return nil return nil
} }
@ -833,7 +838,7 @@ func (c *commandeer) newWatcher(port int) error {
// When mkdir -p is used, only the top directory triggers an event (at least on OSX) // When mkdir -p is used, only the top directory triggers an event (at least on OSX)
if ev.Op&fsnotify.Create == fsnotify.Create { if ev.Op&fsnotify.Create == fsnotify.Create {
if s, err := c.Fs.Source.Stat(ev.Name); err == nil && s.Mode().IsDir() { 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 @@ func (c *commandeer) newWatcher(port int) error {
// If file doesn't exist in any static dir, remove it // If file doesn't exist in any static dir, remove it
toRemove := filepath.Join(publishDir, relPath) toRemove := filepath.Join(publishDir, relPath)
logger.Println("File no longer exists in static dir, removing", toRemove) 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 { } else if err == nil {
// If file still exists, sync it // If file still exists, sync it
logger.Println("Syncing", relPath, "to", publishDir) logger.Println("Syncing", relPath, "to", publishDir)

View file

@ -551,7 +551,9 @@ func (s *Site) preparePagesForRender(cfg *BuildCfg) {
p.Content = helpers.BytesToHTML(workContentCopy) p.Content = helpers.BytesToHTML(workContentCopy)
if summaryContent == nil { 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 { } else {

View file

@ -637,7 +637,7 @@ type whatChanged struct {
func (s *Site) RegisterMediaTypes() { func (s *Site) RegisterMediaTypes() {
for _, mt := range s.mediaTypesConfig { for _, mt := range s.mediaTypesConfig {
// The last one will win if there are any duplicates. // 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 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) {
} }
if len(dataChanged) > 0 { 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. // If a content file changes, we need to reload only it and re-render the entire site.
@ -1895,7 +1897,10 @@ func (s *Site) renderAndWriteXML(name string, dest string, d interface{}, layout
path = []byte(s) path = []byte(s)
} }
transformer := transform.NewChain(transform.AbsURLInXML) 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) return s.publish(dest, outBuffer)
@ -1943,7 +1948,10 @@ func (s *Site) renderAndWritePage(name string, dest string, p *PageOutput, layou
} }
transformer := transform.NewChain(transformLinks...) 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) return s.publish(dest, outBuffer)
} }

View file

@ -147,7 +147,9 @@ func (s *Site) renderPaginator(p *PageOutput) error {
// TODO(bep) output do better // TODO(bep) output do better
link := newOutputFormat(p.Page, p.outputFormat).Permalink() 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() pagers := p.paginator.Pagers()

View file

@ -27,7 +27,9 @@ var hugoGeneratorTag = fmt.Sprintf(`<meta name="generator" content="Hugo %s" />`
// HugoGeneratorInject injects a meta generator tag for Hugo if none present. // HugoGeneratorInject injects a meta generator tag for Hugo if none present.
func HugoGeneratorInject(ct contentTransformer) { func HugoGeneratorInject(ct contentTransformer) {
if metaTagsCheck.Match(ct.Content()) { 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 return
} }
@ -41,5 +43,8 @@ func HugoGeneratorInject(ct contentTransformer) {
newcontent = bytes.Replace(ct.Content(), []byte(head), replace, 1) 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)
}
} }