Skip to content

Commit

Permalink
opt(hgctl/dashboard): avoid printing error messages cannot open brows…
Browse files Browse the repository at this point in the history
…er (alibaba#665)

Signed-off-by: sjcsjc123 <[email protected]>
  • Loading branch information
sjcsjc123 authored Dec 6, 2023
1 parent 1dbb130 commit a554ee1
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions pkg/cmd/hgctl/dashboard.go
Original file line number Diff line number Diff line change
Expand Up @@ -361,8 +361,6 @@ func ClosePortForwarderOnInterrupt(fw kubernetes.PortForwarder) {
}

func openBrowser(url string, writer io.Writer, browser bool) {
var err error

fmt.Fprintf(writer, "%s\n", url)

if !browser {
Expand All @@ -372,16 +370,29 @@ func openBrowser(url string, writer io.Writer, browser bool) {

switch runtime.GOOS {
case "linux":
err = exec.Command("xdg-open", url).Start()
openCommand(writer, "xdg-open", url)
case "windows":
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
openCommand(writer, "rundll32", "url.dll,FileProtocolHandler", url)
case "darwin":
err = exec.Command("open", url).Start()
openCommand(writer, "open", url)
default:
fmt.Fprintf(writer, "Unsupported platform %q; open %s in your browser.\n", runtime.GOOS, url)
}
}

func openCommand(writer io.Writer, command string, args ...string) {
_, err := exec.LookPath(command)
if err != nil {
if errors.Is(err, exec.ErrNotFound) {
fmt.Fprintf(writer, "Could not open your browser. Please open it maually.\n")
return
}
fmt.Fprintf(writer, "Failed to open browser; open %s in your browser.\nError: %s\n", args[0], err.Error())
return
}

err = exec.Command(command, args...).Start()
if err != nil {
fmt.Fprintf(writer, "Failed to open browser; open %s in your browser.\nError: %s\n", url, err.Error())
fmt.Fprintf(writer, "Failed to open browser; open %s in your browser.\nError: %s\n", args[0], err.Error())
}
}

0 comments on commit a554ee1

Please sign in to comment.