github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/cmd/internal/browser/browser.go (about)

     1  
     2  //此源码被清华学神尹成大魔王专业翻译分析并修改
     3  //尹成QQ77025077
     4  //尹成微信18510341407
     5  //尹成所在QQ群721929980
     6  //尹成邮箱 yinc13@mails.tsinghua.edu.cn
     7  //尹成毕业于清华大学,微软区块链领域全球最有价值专家
     8  //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
     9  //版权所有2016 Go作者。版权所有。
    10  //此源代码的使用受BSD样式的控制
    11  //
    12  
    13  //包浏览器提供了与用户浏览器交互的实用程序。
    14  package browser
    15  
    16  import (
    17  	"os"
    18  	"os/exec"
    19  	"runtime"
    20  )
    21  
    22  //命令返回用于打开URL的可能命令的列表。
    23  func Commands() [][]string {
    24  	var cmds [][]string
    25  	if exe := os.Getenv("BROWSER"); exe != "" {
    26  		cmds = append(cmds, []string{exe})
    27  	}
    28  	switch runtime.GOOS {
    29  	case "darwin":
    30  		cmds = append(cmds, []string{"/usr/bin/open"})
    31  	case "windows":
    32  		cmds = append(cmds, []string{"cmd", "/c", "start"})
    33  	default:
    34  		cmds = append(cmds, []string{"xdg-open"})
    35  	}
    36  	cmds = append(cmds,
    37  		[]string{"chrome"},
    38  		[]string{"google-chrome"},
    39  		[]string{"chromium"},
    40  		[]string{"firefox"},
    41  	)
    42  	return cmds
    43  }
    44  
    45  //open尝试在浏览器中打开URL并报告是否成功。
    46  func Open(url string) bool {
    47  	for _, args := range Commands() {
    48  		cmd := exec.Command(args[0], append(args[1:], url)...)
    49  		if cmd.Start() == nil {
    50  			return true
    51  		}
    52  	}
    53  	return false
    54  }