browser_linux.go 563 B

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