diff options
author | Bjørn Erik Pedersen <[email protected]> | 2024-11-14 15:18:27 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2024-11-14 15:59:23 +0100 |
commit | ac6962d28432f7ec14e8bf541be4a96f66098559 (patch) | |
tree | 662fe828d010fab80fb28a3c5f5adea4fd2dc7a1 | |
parent | 23d21b0d16fa03c29f769bd3a13f705c69deb732 (diff) | |
download | hugo-ac6962d28432f7ec14e8bf541be4a96f66098559.tar.gz hugo-ac6962d28432f7ec14e8bf541be4a96f66098559.zip |
commands: Add -O flag to server to open browser
Fixes #13040
-rw-r--r-- | commands/server.go | 10 |
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 { |