]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
commands: Add -O flag to server to open browser
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 14 Nov 2024 14:18:27 +0000 (15:18 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 14 Nov 2024 14:59:23 +0000 (15:59 +0100)
Fixes #13040

commands/server.go

index 6b801b158c834daabd60be91decbec3d4b2adaec..c2fee68b239f8833cc9b5f903cba64ad8f399fa3 100644 (file)
@@ -40,6 +40,7 @@ import (
        "time"
 
        "github.com/bep/mclib"
+       "github.com/pkg/browser"
 
        "github.com/bep/debounce"
        "github.com/bep/simplecobra"
@@ -448,6 +449,7 @@ type serverCommand struct {
        // Flags.
        renderStaticToDisk  bool
        navigateToChanged   bool
+       openBrowser         bool
        serverAppend        bool
        serverInterface     string
        tlsCertFile         string
@@ -539,6 +541,7 @@ of a second, you will be able to save and see your changes nearly instantly.`
        cmd.Flags().BoolVarP(&c.serverAppend, "appendPort", "", true, "append port to baseURL")
        cmd.Flags().BoolVar(&c.disableLiveReload, "disableLiveReload", false, "watch without enabling live browser reload on rebuild")
        cmd.Flags().BoolVarP(&c.navigateToChanged, "navigateToChanged", "N", false, "navigate to changed content file on live browser reload")
+       cmd.Flags().BoolVarP(&c.openBrowser, "openBrowser", "O", false, "open the site in a browser after server startup")
        cmd.Flags().BoolVar(&c.renderStaticToDisk, "renderStaticToDisk", false, "serve static files from disk and dynamic files from memory")
        cmd.Flags().BoolVar(&c.disableFastRender, "disableFastRender", false, "enables full re-renders on changes")
        cmd.Flags().BoolVar(&c.disableBrowserError, "disableBrowserError", false, "do not show build errors in the browser")
@@ -998,6 +1001,13 @@ func (c *serverCommand) serve() error {
 
        c.r.Println("Press Ctrl+C to stop")
 
+       if c.openBrowser {
+               // There may be more than one baseURL in multihost mode, open the first.
+               if err := browser.OpenURL(baseURLs[0].String()); err != nil {
+                       c.r.logger.Warnf("Failed to open browser: %s", err)
+               }
+       }
+
        err = func() error {
                for {
                        select {