Skip to content

Instantly share code, notes, and snippets.

@lisa
Created April 25, 2019 23:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lisa/fcd3e402ca1456cebbf5342cf3ab156a to your computer and use it in GitHub Desktop.
Save lisa/fcd3e402ca1456cebbf5342cf3ab156a to your computer and use it in GitHub Desktop.
Am I aarch64?
package main
import (
"fmt"
"strings"
"golang.org/x/sys/unix"
)
func getMachineArch() (string, error) {
uname := unix.Utsname{}
err := unix.Uname(&uname)
fmt.Printf("getMachineArch() err = %+v\n", err)
fmt.Printf("getMachineArch() sysname = %s\n", string(uname.Sysname[:]))
fmt.Printf("getMachineArch() nodename = %s\n", string(uname.Nodename[:]))
fmt.Printf("getMachineArch() release = %s\n", string(uname.Release[:]))
fmt.Printf("getMachineArch() version = %s\n", string(uname.Version[:]))
fmt.Printf("getMachineArch() machine = %s\n", string(uname.Machine[:]))
if err != nil {
return "", err
}
return string(uname.Machine[:]), nil
}
// aarch64 changes
func isAArch64() bool {
arch, err := getMachineArch()
fmt.Printf("isAArch64() arch = %s, err = %v\n", arch, err)
if err == nil {
return strings.Contains(arch, "aarch64")
}
return false
}
func main() {
fmt.Printf("am I aarch64 => %t?\n", isAArch64())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment