diff options
author | Noah Campbell <[email protected]> | 2013-08-01 11:55:18 -0700 |
---|---|---|
committer | Noah Campbell <[email protected]> | 2013-08-01 13:27:56 -0700 |
commit | 3e539c712635410b945d775b9576a4c3d3b01be9 (patch) | |
tree | da6ffedc2856a4eaf5cbdb417899c044c224bb3e | |
parent | 03e804ffd265c8cbd65cd45ddc3b50ab0f566fcc (diff) | |
download | hugo-3e539c712635410b945d775b9576a4c3d3b01be9.tar.gz hugo-3e539c712635410b945d775b9576a4c3d3b01be9.zip |
Adding error message when no content pages exists.
-rw-r--r-- | hugolib/site.go | 22 | ||||
-rw-r--r-- | main.go | 24 |
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() { @@ -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) { |