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