diff --git a/browser.go b/browser.go index d92c4cd..76036f5 100644 --- a/browser.go +++ b/browser.go @@ -56,7 +56,6 @@ func OpenURL(url string) error { func runCmd(prog string, args ...string) error { cmd := exec.Command(prog, args...) - cmd.Stdout = Stdout cmd.Stderr = Stderr return cmd.Run() } diff --git a/browser_linux.go b/browser_linux.go index bed47dd..1cb7a1c 100644 --- a/browser_linux.go +++ b/browser_linux.go @@ -1,5 +1,22 @@ package browser +import ( + "os/exec" + "strings" +) + +func hasProgram(name string) bool { + _, err := exec.LookPath(name) + return err == nil +} + func openBrowser(url string) error { + // Windows Subsystem for Linux (bash for Windows) doesn't have xdg-open available + // but you can execute cmd.exe from there; try to identify it + if !hasProgram("xdg-open") && hasProgram("cmd.exe") { + r := strings.NewReplacer("&", "^&") + return runCmd("cmd.exe", "/c", "start", r.Replace(url)) + } + return runCmd("xdg-open", url) }