1 package browser
2 3 import (
4 "os/exec"
5 "strings"
6 )
7 8 func openBrowser(url string) error {
9 providers := []string{"xdg-open", "x-www-browser", "www-browser"}
10 11 // There are multiple possible providers to open a browser on linux
12 // One of them is xdg-open, another is x-www-browser, then there's www-browser, etc.
13 // Look for one that exists and run it
14 for _, provider := range providers {
15 if _, err := exec.LookPath(provider); err == nil {
16 return runCmd(provider, url)
17 }
18 }
19 20 return &exec.Error{Name: strings.Join(providers, ","), Err: exec.ErrNotFound}
21 }
22