1package browser
2
3import (
4 "os/exec"
5 "strings"
6)
7
8func 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}