github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgPlatform/kmgPlatform.go (about)

     1  package kmgPlatform
     2  
     3  import "runtime"
     4  
     5  type Platform struct {
     6  	Os   string
     7  	Arch string
     8  }
     9  
    10  func (p Platform) Compatible(other Platform) bool {
    11  	return p == other
    12  }
    13  
    14  func (p Platform) String() string {
    15  	return p.Os + "_" + p.Arch
    16  }
    17  
    18  func (p Platform) GetExeSuffix() string {
    19  	if p.Os == "windows" {
    20  		return p.Os + "_" + p.Arch + ".exe"
    21  	}
    22  	return p.Os + "_" + p.Arch
    23  }
    24  
    25  var LinuxAmd64 = Platform{Os: "linux", Arch: "amd64"}
    26  var DarwinAmd64 = Platform{Os: "darwin", Arch: "amd64"}
    27  var WindowsAmd64 = Platform{Os: "windows", Arch: "amd64"}
    28  
    29  //编译这个软件的平台
    30  func GetCompiledPlatform() Platform {
    31  	return Platform{
    32  		Os:   runtime.GOOS,
    33  		Arch: runtime.GOARCH,
    34  	}
    35  }
    36  
    37  func IsLinux() bool {
    38  	return runtime.GOOS == "linux"
    39  }
    40  
    41  func IsDarwin() bool {
    42  	return runtime.GOOS == "darwin"
    43  }
    44  
    45  func IsWindows() bool {
    46  	return runtime.GOOS == "windows"
    47  }