Move the Build* methods to HugoSites
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 27 Jul 2016 08:49:42 +0000 (10:49 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 6 Sep 2016 15:32:16 +0000 (18:32 +0300)
See #2309

commands/hugo.go
hugolib/hugo_sites.go

index b8e4ea6430b86ed0cccfab2273a3cc5bd900d948..959006557b81655bdb71e2b7daf04184cc9654ed 100644 (file)
@@ -713,43 +713,13 @@ func getDirList() []string {
 }
 
 func buildSites(watching ...bool) (err error) {
-       fmt.Println("Started building site")
-       t0 := time.Now()
-
-       for _, site := range Hugo {
-               t1 := time.Now()
-               if len(watching) > 0 && watching[0] {
-                       site.RunMode.Watching = true
-               }
-
-               if err := site.Build(); err != nil {
-                       return err
-               }
-
-               site.Stats(t1)
-       }
-
-       jww.FEEDBACK.Printf("total in %v ms\n", int(1000*time.Since(t0).Seconds()))
-
-       return nil
+       fmt.Println("Started building sites ...")
+       w := len(watching) > 0 && watching[0]
+       return Hugo.Build(w, true)
 }
 
 func rebuildSites(events []fsnotify.Event) error {
-       t0 := time.Now()
-
-       for _, site := range Hugo {
-               t1 := time.Now()
-
-               if err := site.ReBuild(events); err != nil {
-                       return err
-               }
-
-               site.Stats(t1)
-       }
-
-       jww.FEEDBACK.Printf("total in %v ms\n", int(1000*time.Since(t0).Seconds()))
-
-       return nil
+       return Hugo.Rebuild(events, true)
 }
 
 // NewWatcher creates a new watcher to watch filesystem events.
index cc6b4ca120550ed944133b75307b88193da3c297..dd8d3e5d2a47792075afce271ceab979a74a3d39 100644 (file)
 
 package hugolib
 
+import (
+       "time"
+
+       "github.com/fsnotify/fsnotify"
+
+       jww "github.com/spf13/jwalterweatherman"
+)
+
 // HugoSites represents the sites to build. Each site represents a language.
 type HugoSites []*Site
 
@@ -23,3 +31,52 @@ func (h HugoSites) Reset() {
                h[i] = s.Reset()
        }
 }
+
+// Build builds all sites.
+func (h HugoSites) Build(watching, printStats bool) error {
+       t0 := time.Now()
+
+       for _, site := range h {
+               t1 := time.Now()
+
+               site.RunMode.Watching = watching
+
+               if err := site.Build(); err != nil {
+                       return err
+               }
+               if printStats {
+                       site.Stats(t1)
+               }
+       }
+
+       if printStats {
+               jww.FEEDBACK.Printf("total in %v ms\n", int(1000*time.Since(t0).Seconds()))
+       }
+
+       return nil
+
+}
+
+// Rebuild rebuilds all sites.
+func (h HugoSites) Rebuild(events []fsnotify.Event, printStats bool) error {
+       t0 := time.Now()
+
+       for _, site := range h {
+               t1 := time.Now()
+
+               if err := site.ReBuild(events); err != nil {
+                       return err
+               }
+
+               if printStats {
+                       site.Stats(t1)
+               }
+       }
+
+       if printStats {
+               jww.FEEDBACK.Printf("total in %v ms\n", int(1000*time.Since(t0).Seconds()))
+       }
+
+       return nil
+
+}