Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hugolib/site.go22
-rw-r--r--main.go24
2 files changed, 32 insertions, 14 deletions
diff --git a/hugolib/site.go b/hugolib/site.go
index 5ff3546a1..85f97ddcd 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -24,6 +24,7 @@ import (
"path/filepath"
"strings"
"time"
+ "errors"
//"sync"
)
@@ -59,10 +60,13 @@ func NewSite(config *Config) *Site {
return &Site{c: *config, timer: nitro.Initalize()}
}
-func (site *Site) Build() {
- site.Process()
+func (site *Site) Build() (err error) {
+ if err = site.Process(); err != nil {
+ return
+ }
site.Render()
site.Write()
+ return nil
}
func (site *Site) Analyze() {
@@ -70,14 +74,17 @@ func (site *Site) Analyze() {
site.checkDescriptions()
}
-func (site *Site) Process() {
+func (site *Site) Process() (err error){
site.initialize()
site.prepTemplates()
site.timer.Step("initialize & template prep")
site.CreatePages()
site.timer.Step("import pages")
- site.BuildSiteMeta()
+ if err = site.BuildSiteMeta(); err != nil {
+ return
+ }
site.timer.Step("build indexes")
+ return
}
func (site *Site) Render() {
@@ -213,7 +220,7 @@ func (s *Site) CreatePages() {
s.Pages.Sort()
}
-func (s *Site) BuildSiteMeta() {
+func (s *Site) BuildSiteMeta() (err error) {
s.Indexes = make(IndexList)
s.Sections = make(Index)
@@ -243,8 +250,11 @@ func (s *Site) BuildSiteMeta() {
}
s.Info.Indexes = s.Indexes.BuildOrderedIndexList()
-
+ if len(s.Pages) == 0 {
+ return errors.New(fmt.Sprintf("Unable to build site metadata, no pages found in directory %s", s.c.ContentDir))
+ }
s.Info.LastChange = s.Pages[0].Date
+ return
}
func (s *Site) RenderPages() {
diff --git a/main.go b/main.go
index 2a7585242..692db431d 100644
--- a/main.go
+++ b/main.go
@@ -90,7 +90,7 @@ func main() {
defer pprof.StopCPUProfile()
for i := 0; i < *cpuprofile; i++ {
- _ = buildSite(config)
+ _, _ = buildSite(config)
}
}
@@ -108,15 +108,20 @@ func main() {
if *watchMode {
fmt.Println("Watching for changes. Press ctrl+c to stop")
- _ = buildSite(config)
+ _, err = buildSite(config)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
err := NewWatcher(config, *port, *server)
-
if err != nil {
fmt.Println(err)
}
}
- _ = buildSite(config)
+ if _, err = buildSite(config); err != nil {
+ fmt.Println(err)
+ }
if *server {
serve(*port, config)
@@ -135,13 +140,16 @@ func serve(port string, config *hugolib.Config) {
panic(http.ListenAndServe(":"+port, http.FileServer(http.Dir(config.GetAbsPath(config.PublishDir)))))
}
-func buildSite(config *hugolib.Config) *hugolib.Site {
+func buildSite(config *hugolib.Config) (site *hugolib.Site, err error) {
startTime := time.Now()
- site := hugolib.NewSite(config)
- site.Build()
+ site = hugolib.NewSite(config)
+ err = site.Build()
+ if err != nil {
+ return
+ }
site.Stats()
fmt.Printf("in %v ms\n", int(1000*time.Since(startTime).Seconds()))
- return site
+ return site, nil
}
func watchChange(c *hugolib.Config) {