]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
commands: Print "Webserver is ..." right before "Total ..."
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 20 Apr 2024 13:36:54 +0000 (15:36 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 1 May 2024 08:52:40 +0000 (10:52 +0200)
Also fix it so

* It's not printed when running `hugo -w`
* It'd printed for all kinds of rebuilds

Fixes #12384

commands/commandeer.go
commands/hugobuilder.go
hugolib/hugo_sites_build.go

index 616a3c867f433b53a8d7c2263d46ca57dfcff1ad..5d4f02a4de6e4a888d251cc1710896d1b27a4d73 100644 (file)
@@ -327,12 +327,12 @@ func (r *rootCommand) Name() string {
 }
 
 func (r *rootCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, args []string) error {
+       b := newHugoBuilder(r, nil)
+
        if !r.buildWatch {
-               defer r.timeTrack(time.Now(), "Total")
+               defer b.postBuild("Total", time.Now())
        }
 
-       b := newHugoBuilder(r, nil)
-
        if err := b.loadConfig(cd, false); err != nil {
                return err
        }
index f5bc730873a51daa0a1f631425a79416fcd54e50..657048d481aece8e4011310098bbe8c6f6284f7e 100644 (file)
@@ -75,9 +75,14 @@ type hugoBuilder struct {
        errState hugoBuilderErrState
 }
 
+var errConfigNotSet = errors.New("config not set")
+
 func (c *hugoBuilder) withConfE(fn func(conf *commonConfig) error) error {
        c.confmu.Lock()
        defer c.confmu.Unlock()
+       if c.conf == nil {
+               return errConfigNotSet
+       }
        return fn(c.conf)
 }
 
@@ -585,7 +590,7 @@ func (c *hugoBuilder) fullRebuild(changeType string) {
                        time.Sleep(2 * time.Second)
                }()
 
-               defer c.r.timeTrack(time.Now(), "Rebuilt")
+               defer c.postBuild("Rebuilt", time.Now())
 
                err := c.reloadConfig()
                if err != nil {
@@ -855,7 +860,7 @@ func (c *hugoBuilder) handleEvents(watcher *watcher.Batcher,
                c.changeDetector.PrepareNew()
 
                func() {
-                       defer c.r.timeTrack(time.Now(), "Total")
+                       defer c.postBuild("Total", time.Now())
                        if err := c.rebuildSites(dynamicEvents); err != nil {
                                c.handleBuildErr(err, "Rebuild failed")
                        }
@@ -901,6 +906,13 @@ func (c *hugoBuilder) handleEvents(watcher *watcher.Batcher,
        }
 }
 
+func (c *hugoBuilder) postBuild(what string, start time.Time) {
+       if h, err := c.hugo(); err == nil && h.Conf.Running() {
+               h.LogServerAddresses()
+       }
+       c.r.timeTrack(start, what)
+}
+
 func (c *hugoBuilder) hugo() (*hugolib.HugoSites, error) {
        var h *hugolib.HugoSites
        if err := c.withConfE(func(conf *commonConfig) error {
index 3beb072e3c7fb3ac15451ab50a29f25c03cc60cb..a4546ff44925215557135e97c47089b29fd99385 100644 (file)
@@ -951,12 +951,10 @@ func (h *HugoSites) processPartial(ctx context.Context, l logg.LevelLogger, conf
                }
        }
 
-       h.logServerAddresses()
-
        return nil
 }
 
-func (h *HugoSites) logServerAddresses() {
+func (h *HugoSites) LogServerAddresses() {
        if h.hugoInfo.IsMultihost() {
                for _, s := range h.Sites {
                        h.Log.Printf("Web Server is available at %s (bind address %s) %s\n", s.conf.C.BaseURL, s.conf.C.ServerInterface, s.Language().Lang)