Skip to content

Commit

Permalink
add -show-url option for ui command (#11213)
Browse files Browse the repository at this point in the history
  • Loading branch information
yaroot committed Oct 6, 2021
1 parent 25b2e54 commit c21493a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
3 changes: 3 additions & 0 deletions .changelog/11213.txt
@@ -0,0 +1,3 @@
```release-note:improvement
cli: Add `-show-url` option for the `nomad ui` command.
```
17 changes: 14 additions & 3 deletions command/ui.go
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
}

Expand Down
9 changes: 9 additions & 0 deletions website/content/docs/commands/ui.mdx
Expand Up @@ -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:
Expand Down Expand Up @@ -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
```

0 comments on commit c21493a

Please sign in to comment.