aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2024-11-14 15:18:27 +0100
committerBjørn Erik Pedersen <[email protected]>2024-11-14 15:59:23 +0100
commitac6962d28432f7ec14e8bf541be4a96f66098559 (patch)
tree662fe828d010fab80fb28a3c5f5adea4fd2dc7a1
parent23d21b0d16fa03c29f769bd3a13f705c69deb732 (diff)
downloadhugo-ac6962d28432f7ec14e8bf541be4a96f66098559.tar.gz
hugo-ac6962d28432f7ec14e8bf541be4a96f66098559.zip
commands: Add -O flag to server to open browser
Fixes #13040
-rw-r--r--commands/server.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/commands/server.go b/commands/server.go
index 6b801b158..c2fee68b2 100644
--- a/commands/server.go
+++ b/commands/server.go
@@ -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 {