From a1750f375d13df7ce353cfdb66c822c62ec29a8e Mon Sep 17 00:00:00 2001 From: Yan Su Date: Tue, 21 Sep 2021 19:33:43 +0900 Subject: [PATCH] add `-show-url` option for `ui` command --- command/ui.go | 17 ++++++++++++++--- website/content/docs/commands/ui.mdx | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/command/ui.go b/command/ui.go index d4d275dbb52b..c74f9b0fbf0f 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 21bc2decc624..f4f5a3551148 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 Nomad UI URL instead of opening with the default browser. ## Examples