in rule/rule.go [858:900]
func getArch(arch string) (string, uint32, error) {
realArch := arch
switch strings.ToLower(arch) {
case "b64":
runtimeArch, err := getRuntimeArch()
if err != nil {
return "", 0, err
}
switch runtimeArch {
case "aarch64", "x86_64", "ppc64", "ppc64le", "s390x":
realArch = runtimeArch
default:
return "", 0, fmt.Errorf("cannot use b64 on %v", runtimeArch)
}
case "b32":
runtimeArch, err := getRuntimeArch()
if err != nil {
return "", 0, err
}
switch runtimeArch {
case "arm", "i386", "s390":
realArch = runtimeArch
case "aarch64":
realArch = "arm"
case "x86_64":
realArch = "i386"
case "ppc64", "ppc64le":
realArch = "ppc"
case "s390x":
realArch = "s390"
default:
return "", 0, fmt.Errorf("cannot use b32 on %v", runtimeArch)
}
}
archValue, found := reverseArch[realArch]
if !found {
return "", 0, fmt.Errorf("unknown arch '%v'", arch)
}
return realArch, archValue, nil
}