diff --git a/core/src/main/java/io/javaoperatorsdk/jenvtest/binary/OSInfo.java b/core/src/main/java/io/javaoperatorsdk/jenvtest/binary/OSInfo.java index b0a3e25..4a3c746 100644 --- a/core/src/main/java/io/javaoperatorsdk/jenvtest/binary/OSInfo.java +++ b/core/src/main/java/io/javaoperatorsdk/jenvtest/binary/OSInfo.java @@ -1,30 +1,37 @@ package io.javaoperatorsdk.jenvtest.binary; public class OSInfo { + private final String os; + private final String arch; - public String getOSName() { - String os = System.getProperty("os.name").toLowerCase(); + public OSInfo() { + final var osArch = System.getProperty("os.arch").toLowerCase(); + switch (osArch) { + case "ppc64": + arch = "ppc64le"; + break; + case "aarch64": + arch = "arm64"; + break; + default: + arch = "amd64"; + } + + final var os = System.getProperty("os.name").toLowerCase(); if (os.contains("win")) { - return "windows"; + this.os = "windows"; } else if (os.contains("mac")) { - return "darwin"; + this.os = "darwin"; } else { - return os; + this.os = os; } } - /** - * Only amd64 and ppc64 binaries available. - * - * @return ppc64le if on that architecture otherwise amd64. - */ - public String getOSArch() { - var osArch = System.getProperty("os.arch").toLowerCase(); - if (osArch.contains("ppc64")) { - return "ppc64le"; - } else { - return "amd64"; - } + public String getOSName() { + return os; } + public String getOSArch() { + return arch; + } }