ref: 0fdea0c2c222bb3f21187d0ff34fbe92980ae851
parent: 097b782a8094af5d1b4f2e4dd5194488fd421e3b
author: Noah Campbell <[email protected]>
date: Fri Aug 30 17:24:25 EDT 2013
Return an error with WritePublic
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -439,7 +439,10 @@
if err != nil {
return err
}
- s.WritePublic(a, content.Bytes())
+ err = s.WritePublic(a, content.Bytes())
+ if err != nil {
+ return err
+ }
}
}
return nil
@@ -456,10 +459,14 @@
return nil
}
-func (s *Site) WritePages() {
+func (s *Site) WritePages() (err error) {
for _, p := range s.Pages {
- s.WritePublic(p.OutFile, p.RenderedContent.Bytes())
+ err = s.WritePublic(p.OutFile, p.RenderedContent.Bytes())
+ if err != nil {
+ return
+ }
}
+ return
}
func (s *Site) RenderIndexes() error {
@@ -493,7 +500,10 @@
base = plural + "/" + k + "/" + "index"
}
- s.WritePublic(base+".html", x.Bytes())
+ err = s.WritePublic(base+".html", x.Bytes())
+ if err != nil {
+ return err
+ }
if a := s.Tmpl.Lookup("rss.xml"); a != nil {
// XML Feed
@@ -505,7 +515,10 @@
}
n.Permalink = template.HTML(string(n.Site.BaseUrl) + n.Url)
s.Tmpl.ExecuteTemplate(y, "rss.xml", n)
- s.WritePublic(base+".xml", y.Bytes())
+ err = s.WritePublic(base+".xml", y.Bytes())
+ if err != nil {
+ return err
+ }
}
}
}
@@ -527,8 +540,14 @@
n.Data["OrderedIndex"] = s.Info.Indexes[plural]
x, err := s.RenderThing(n, layout)
- s.WritePublic(plural+"/index.html", x.Bytes())
- return err
+ if err != nil {
+ return err
+ }
+
+ err = s.WritePublic(plural+"/index.html", x.Bytes())
+ if err != nil {
+ return err
+ }
}
}
return
@@ -549,7 +568,10 @@
if err != nil {
return err
}
- s.WritePublic(section+"/index.html", content.Bytes())
+ err = s.WritePublic(section+"/index.html", content.Bytes())
+ if err != nil {
+ return err
+ }
if a := s.Tmpl.Lookup("rss.xml"); a != nil {
// XML Feed
@@ -561,7 +583,8 @@
n.Permalink = template.HTML(string(n.Site.BaseUrl) + n.Url)
y := s.NewXMLBuffer()
s.Tmpl.ExecuteTemplate(y, "rss.xml", n)
- s.WritePublic(section+"/index.xml", y.Bytes())
+ err = s.WritePublic(section+"/index.xml", y.Bytes())
+ return err
}
}
return nil
@@ -585,7 +608,10 @@
if err != nil {
return err
}
- s.WritePublic("index.html", x.Bytes())
+ err = s.WritePublic("index.html", x.Bytes())
+ if err != nil {
+ return err
+ }
if a := s.Tmpl.Lookup("rss.xml"); a != nil {
// XML Feed
@@ -594,7 +620,8 @@
n.Permalink = template.HTML(string(n.Site.BaseUrl) + "index.xml")
y := s.NewXMLBuffer()
s.Tmpl.ExecuteTemplate(y, "rss.xml", n)
- s.WritePublic("index.xml", y.Bytes())
+ err = s.WritePublic("index.xml", y.Bytes())
+ return err
}
if a := s.Tmpl.Lookup("404.html"); a != nil {
@@ -605,7 +632,8 @@
if err != nil {
return err
}
- s.WritePublic("404.html", x.Bytes())
+ err = s.WritePublic("404.html", x.Bytes())
+ return err
}
return nil
@@ -652,10 +680,10 @@
return bytes.NewBufferString(header)
}
-func (s *Site) WritePublic(path string, content []byte) {
+func (s *Site) WritePublic(path string, content []byte) (err error) {
if s.Target != nil {
- s.Target.Publish(path, bytes.NewReader(content))
+ return s.Target.Publish(path, bytes.NewReader(content))
}
if s.Config.Verbose {
@@ -665,14 +693,14 @@
path, filename := filepath.Split(path)
path = filepath.FromSlash(s.Config.GetAbsPath(filepath.Join(s.Config.PublishDir, path)))
- err := mkdirIf(path)
-
+ err = mkdirIf(path)
if err != nil {
- fmt.Println(err)
+ return
}
file, _ := os.Create(filepath.Join(path, filename))
defer file.Close()
- file.Write(content)
+ _, err = file.Write(content)
+ return
}