github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/cmd/internal/browser/browser.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:32</date> 10 //</624450068925124608> 11 12 //版权所有2016 Go作者。版权所有。 13 //此源代码的使用受BSD样式的控制 14 //可以在许可文件中找到的许可证。 15 16 //包浏览器提供了与用户浏览器交互的实用程序。 17 package browser 18 19 import ( 20 "os" 21 "os/exec" 22 "runtime" 23 ) 24 25 //命令返回用于打开URL的可能命令的列表。 26 func Commands() [][]string { 27 var cmds [][]string 28 if exe := os.Getenv("BROWSER"); exe != "" { 29 cmds = append(cmds, []string{exe}) 30 } 31 switch runtime.GOOS { 32 case "darwin": 33 cmds = append(cmds, []string{"/usr/bin/open"}) 34 case "windows": 35 cmds = append(cmds, []string{"cmd", "/c", "start"}) 36 default: 37 cmds = append(cmds, []string{"xdg-open"}) 38 } 39 cmds = append(cmds, 40 []string{"chrome"}, 41 []string{"google-chrome"}, 42 []string{"chromium"}, 43 []string{"firefox"}, 44 ) 45 return cmds 46 } 47 48 //open尝试在浏览器中打开URL并报告是否成功。 49 func Open(url string) bool { 50 for _, args := range Commands() { 51 cmd := exec.Command(args[0], append(args[1:], url)...) 52 if cmd.Start() == nil { 53 return true 54 } 55 } 56 return false 57 } 58