browser_linux.go raw

   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