4ee0608373
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
28 lines
634 B
Go
28 lines
634 B
Go
// Package platform provides helper function to get the runtime architecture
|
|
// for different platforms.
|
|
package platform
|
|
|
|
import (
|
|
"syscall"
|
|
)
|
|
|
|
// GetRuntimeArchitecture get the name of the current architecture (x86, x86_64, …)
|
|
func GetRuntimeArchitecture() (string, error) {
|
|
utsname := &syscall.Utsname{}
|
|
if err := syscall.Uname(utsname); err != nil {
|
|
return "", err
|
|
}
|
|
return charsToString(utsname.Machine), nil
|
|
}
|
|
|
|
func charsToString(ca [65]int8) string {
|
|
s := make([]byte, len(ca))
|
|
var lens int
|
|
for ; lens < len(ca); lens++ {
|
|
if ca[lens] == 0 {
|
|
break
|
|
}
|
|
s[lens] = uint8(ca[lens])
|
|
}
|
|
return string(s[0:lens])
|
|
}
|