diff --git a/.changelog/11213.txt b/.changelog/11213.txt new file mode 100644 index 000000000..3718e8bf5 --- /dev/null +++ b/.changelog/11213.txt @@ -0,0 +1,3 @@ +```release-note:improvement +cli: Add `-show-url` option for the `nomad ui` command. +``` diff --git a/command/ui.go b/command/ui.go index d4d275dbb..c74f9b0fb 100644 --- a/command/ui.go +++ b/command/ui.go @@ -35,6 +35,8 @@ UI Options -authenticate: Exchange your Nomad ACL token for a one-time token in the web UI, if ACLs are enabled. + + -show-url: Show the Nomad UI URL instead of opening with the default browser. ` return strings.TrimSpace(helpText) @@ -82,10 +84,12 @@ func (c *UiCommand) Name() string { return "ui" } func (c *UiCommand) Run(args []string) int { var authenticate bool + var showUrl bool flags := c.Meta.FlagSet(c.Name(), FlagSetClient) flags.Usage = func() { c.Ui.Output(c.Help()) } flags.BoolVar(&authenticate, "authenticate", false, "") + flags.BoolVar(&showUrl, "show-url", false, "") if err := flags.Parse(args); err != nil { return 1 @@ -178,17 +182,24 @@ func (c *UiCommand) Run(args []string) int { } } + var output string if authenticate && ottSecret != "" { - c.Ui.Output(fmt.Sprintf("Opening URL %q with one-time token", url.String())) + output = fmt.Sprintf("Opening URL %q with one-time token", url.String()) url.RawQuery = fmt.Sprintf("ott=%s", ottSecret) } else { - c.Ui.Output(fmt.Sprintf("Opening URL %q", url.String())) + output = fmt.Sprintf("Opening URL %q", url.String()) } + + if showUrl { + c.Ui.Output(fmt.Sprintf("URL for web UI: %s", url.String())) + return 0 + } + + c.Ui.Output(output) if err := open.Start(url.String()); err != nil { c.Ui.Error(fmt.Sprintf("Error opening URL: %s", err)) return 1 } - return 0 } diff --git a/website/content/docs/commands/ui.mdx b/website/content/docs/commands/ui.mdx index 21bc2decc..1ad5370ed 100644 --- a/website/content/docs/commands/ui.mdx +++ b/website/content/docs/commands/ui.mdx @@ -36,6 +36,8 @@ storage for authentication. - `-authenticate`: Exchange your Nomad ACL token for a one-time token in the web UI. +- `-show-url`: Show the Nomad UI URL instead of opening with the default browser. + ## Examples Open the UI homepage: @@ -65,3 +67,10 @@ Open the UI and authenticate using your ACL token: $ NOMAD_ACL_TOKEN=e9674b26-763b-4637-a28f-0df95c53cdda nomad ui -authenticate Opening URL "http://127.0.0.1:4646" with token ``` + +Show the UI URL without opening the browser: + +```shell-session +$ nomad ui -show-url +URL for web UI: http://127.0.0.1:4646 +```