diff --git a/resources/bin/bal b/resources/bin/bal index f8b60b5..1339146 100755 --- a/resources/bin/bal +++ b/resources/bin/bal @@ -83,6 +83,11 @@ then $JAVA_COMMAND -jar $CURRENT_PATH/../lib/ballerina-command-@version@.jar build else + if [ "$(uname)" == "Darwin" ] + then + # If it's macOS, set an environmental variable for architecture + export BALLERINA_MAC_ARCHITECTURE=$(uname -m) + fi $JAVA_COMMAND -jar $CURRENT_PATH/../lib/ballerina-command-@version@.jar "$@" EXIT_CODE=$? fi diff --git a/src/main/java/org/ballerinalang/command/util/OSUtils.java b/src/main/java/org/ballerinalang/command/util/OSUtils.java index 89e4c9f..380b28f 100644 --- a/src/main/java/org/ballerinalang/command/util/OSUtils.java +++ b/src/main/java/org/ballerinalang/command/util/OSUtils.java @@ -287,13 +287,12 @@ private static boolean isSolaris() { return OS.contains("sunos"); } - private static boolean isArmArchitecture() { + private static boolean isArmArchitecture() { try { - Process process = Runtime.getRuntime().exec("uname -m"); - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String architecture = reader.readLine(); - return architecture.contains("arm"); - } catch (IOException e) { + String macArchitecture = System.getenv("BALLERINA_MAC_ARCHITECTURE"); + + return macArchitecture != null && macArchitecture.equals("arm64"); + } catch (SecurityException e) { return false; } }