From 852e24bc18f08f4079a7b51a1981d2bff963dc98 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 26 Mar 2025 21:52:12 -0700 Subject: [PATCH] Log where the kotlin compiler was found from/at --- .../bld/extension/CompileKotlinOperation.java | 88 ++++++++++++------- 1 file changed, 55 insertions(+), 33 deletions(-) diff --git a/src/main/java/rife/bld/extension/CompileKotlinOperation.java b/src/main/java/rife/bld/extension/CompileKotlinOperation.java index bb6f209..a45ef0c 100644 --- a/src/main/java/rife/bld/extension/CompileKotlinOperation.java +++ b/src/main/java/rife/bld/extension/CompileKotlinOperation.java @@ -103,7 +103,8 @@ public class CompileKotlinOperation extends AbstractOperation commonPaths = new ArrayList<>(); + var commonPaths = new HashMap(); //NOPMD no concurrent access if (isLinux()) { var userHome = System.getProperty("user.home"); if (userHome != null) { - commonPaths.add(userHome + "/.sdkman/candidates/kotlin/current/bin"); // SDKMAN! - commonPaths.add(userHome + "/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/plugins/Kotlin/kotlinc/bin"); // Toolbox IDEA Ultimate - commonPaths.add(userHome + "/.local/share/JetBrains/Toolbox/apps/intellij-idea-community-edition/plugins/Kotlin/kotlinc/bin"); // Toolbox IDEA CE - commonPaths.add(userHome + "/.local/share/JetBrains/Toolbox/apps/android-studio/plugins/Kotlin/kotlinc/bin"); // Toolbox Android Studio + commonPaths.put(userHome + "/.sdkman/candidates/kotlin/current/bin", "SDKMAN"); + commonPaths.put(userHome + "/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/plugins/Kotlin/kotlinc/bin", + "IntelliJ IDEA Ultimate"); + commonPaths.put(userHome + "/.local/share/JetBrains/Toolbox/apps/intellij-idea-community-edition/plugins/Kotlin/kotlinc/bin", + "IntelliJ IDEA Community Edition"); + commonPaths.put(userHome + "/.local/share/JetBrains/Toolbox/apps/android-studio/plugins/Kotlin/kotlinc/bin", + "Android Studio"); } - commonPaths.add("/usr/bin"); - commonPaths.add("/usr/share"); - commonPaths.add("/usr/local/bin"); - commonPaths.add("/usr/local/kotlin/bin"); - commonPaths.add("/usr/share/kotlin/bin/"); - commonPaths.add("/opt/kotlin/bin"); + commonPaths.put("/usr/bin", null); + commonPaths.put("/usr/share", null); + commonPaths.put("/usr/local/bin", null); + commonPaths.put("/usr/local/kotlin/bin", null); + commonPaths.put("/usr/share/kotlin/bin/", null); + commonPaths.put("/opt/kotlin/bin", null); } else if (isWindows()) { - commonPaths.add("C:\\tools\\kotlinc"); + commonPaths.put("C:\\tools\\kotlinc", null); var localAppData = System.getenv("LOCALAPPDATA"); if (localAppData != null) { - commonPaths.add(localAppData + "\\Programs\\IntelliJ IDEA Ultimate\\plugins\\Kotlin\\kotlinc\\bin"); // Toolbox IDEA Ultimate - commonPaths.add(localAppData + "\\Programs\\IntelliJ IDEA Community Edition\\plugins\\Kotlin\\kotlinc\\bin"); // Toolbox IDEA CE - commonPaths.add(localAppData + "\\Programs\\Android Studio\\plugins\\Kotlin\\kotlinc\\bin"); // Toolbox Android Studio + commonPaths.put(localAppData + "\\Programs\\IntelliJ IDEA Ultimate\\plugins\\Kotlin\\kotlinc\\bin", + "IntelliJ IDEA Ultimate"); + commonPaths.put(localAppData + "\\Programs\\IntelliJ IDEA Community Edition\\plugins\\Kotlin\\kotlinc\\bin", + "IntelliJ IDEA Community Edition"); + commonPaths.put(localAppData + "\\Programs\\Android Studio\\plugins\\Kotlin\\kotlinc\\bin", + "Android Studio"); } var programFiles = System.getenv("ProgramFiles"); if (programFiles != null) { - commonPaths.add(programFiles + File.separator + "Kotlin"); + commonPaths.put(programFiles + File.separator + "Kotlin", "null"); } } else if (isMacOS()) { var userHome = System.getProperty("user.home"); if (userHome != null) { - commonPaths.add(userHome + "/.sdkman/candidates/kotlin/current/bin"); // SDKMAN! + commonPaths.put(userHome + "/.sdkman/candidates/kotlin/current/bin", "SDKMAN!"); } - commonPaths.add("/Applications/IntelliJ IDEA.app/Contents/plugins/Kotlin/kotlinc/bin/"); // IDEA Ultimate - commonPaths.add("/Applications/IntelliJ IDEA Community Edition.app/Contents/plugins/Kotlin/kotlinc/bin/"); //IDEA CE - commonPaths.add("/Applications/Android Studio.app/Contents/plugins/Kotlin/kotlinc/bin"); //Android Studio - commonPaths.add("/usr/local/bin"); // Homebrew - commonPaths.add("/opt/homebrew/bin"); // Homebrew + commonPaths.put("/Applications/IntelliJ IDEA.app/Contents/plugins/Kotlin/kotlinc/bin/", + "IntelliJ IDEA"); + commonPaths.put("/Applications/IntelliJ IDEA Community Edition.app/Contents/plugins/Kotlin/kotlinc/bin/", + "IntelliJ IDEA Community Edition"); + commonPaths.put("/Applications/Android Studio.app/Contents/plugins/Kotlin/kotlinc/bin", + "Android Studio"); + commonPaths.put("/usr/local/bin", null); + commonPaths.put("/opt/homebrew/bin", "Homebrew"); } - for (var location : commonPaths) { - kotlincPath = findKotlincInDir(location); + for (var path : commonPaths.keySet()) { + kotlincPath = findKotlincInDir(path); if (kotlincPath != null) { - return logKotlincPath(kotlincPath, isSilent); + logKotlincPath(kotlincPath, isSilent, commonPaths.get(path)); + return kotlincPath; } } + commonPaths.forEach((path, where) -> { + + }); // Try 'which' or 'where' commands (less reliable but sometimes works) try { @@ -180,7 +195,8 @@ public class CompileKotlinOperation extends AbstractOperation