diff --git a/command/ui.go b/command/ui.go index d4d275dbb52b..589e1ded1e9e 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 url instead of opening with 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,12 +182,21 @@ func (c *UiCommand) Run(args []string) int { } } - if authenticate && ottSecret != "" { - c.Ui.Output(fmt.Sprintf("Opening URL %q with one-time token", url.String())) + if ottSecret != "" { url.RawQuery = fmt.Sprintf("ott=%s", ottSecret) + } + + if showUrl { + c.Ui.Output(fmt.Sprintf("URL for web UI: %s", url.String())) + return 0 + } + + if ottSecret != "" { + c.Ui.Output(fmt.Sprintf("Opening URL %q with one-time token", url.String())) } else { c.Ui.Output(fmt.Sprintf("Opening URL %q", url.String())) } + if err := open.Start(url.String()); err != nil { c.Ui.Error(fmt.Sprintf("Error opening URL: %s", err)) return 1 diff --git a/website/content/docs/commands/ui.mdx b/website/content/docs/commands/ui.mdx index 21bc2decc624..fc379939133d 100644 --- a/website/content/docs/commands/ui.mdx +++ b/website/content/docs/commands/ui.mdx @@ -35,6 +35,7 @@ storage for authentication. - `-authenticate`: Exchange your Nomad ACL token for a one-time token in the web UI. +- `-show-url`: Show the url instead of opening with default browser. ## Examples