@@ -28,6 +28,7 @@ private Execution() {
2828 private static final String OS_WINDOWS = "windows" ;
2929 private static final List <String > OS_MAC = Arrays .asList ("mac os x" , "darwin" , "osx" );
3030 private static final String FILE_NAME_LINUX = "cx-linux" ;
31+ private static final String FILE_NAME_LINUX_ARM = "cx-linux-arm" ;
3132 private static final String FILE_NAME_MAC = "cx-mac" ;
3233 private static final String FILE_NAME_WINDOWS = "cx.exe" ;
3334 private static final String LINE_SEPARATOR = System .getProperty ("line.separator" );
@@ -143,15 +144,21 @@ private static Process buildProcess(List<String> commands) throws IOException {
143144 }
144145
145146 private static String detectBinaryName () {
146- String arch = OS_NAME ;
147+ String osName = OS_NAME ;
148+ String osArch = System .getProperty ("os.arch" ).toLowerCase (Locale .ENGLISH );
147149 String fileName = null ;
148- if (arch .contains (OS_LINUX )) {
149- fileName = FILE_NAME_LINUX ;
150- } else if (arch .contains (OS_WINDOWS )) {
150+
151+ if (osName .contains (OS_LINUX )) {
152+ if (osArch .contains ("arm" ) || osArch .contains ("aarch64" )) {
153+ fileName = FILE_NAME_LINUX_ARM ;
154+ } else {
155+ fileName = FILE_NAME_LINUX ;
156+ }
157+ } else if (osName .contains (OS_WINDOWS )) {
151158 fileName = FILE_NAME_WINDOWS ;
152159 } else {
153160 for (String macStr : OS_MAC ) {
154- if (arch .contains (macStr )) {
161+ if (osName .contains (macStr )) {
155162 fileName = FILE_NAME_MAC ;
156163 break ;
157164 }
0 commit comments