From: Noah Campbell <noahcampbell@gmail.com>
Date: Thu, 1 Aug 2013 18:55:18 +0000 (-0700)
Subject: Adding error message when no content pages exists.
X-Git-Tag: v0.8~10^2
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3e539c71;p=brevno-suite%2Fhugo

Adding error message when no content pages exists.
---

diff --git a/hugolib/site.go b/hugolib/site.go
index 5ff3546a..85f97ddc 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 2a758524..692db431 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) {