Add pkg/parsers/architecture and pkg/platform
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
This commit is contained in:
parent
6dab26120b
commit
4ee0608373
4 changed files with 118 additions and 0 deletions
28
platform/architecture_linux.go
Normal file
28
platform/architecture_linux.go
Normal file
|
@ -0,0 +1,28 @@
|
|||
// 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])
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue