From 4219851cc29ea72a8d998638e7fd2848b21e529a Mon Sep 17 00:00:00 2001 From: Marie Katrine Ekeberg Date: Wed, 17 Aug 2022 16:13:41 +0200 Subject: [PATCH] Resolve kotlin-stdlib.jar from snap install --- .../org/javacs/kt/classpath/BackupClassPathResolver.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/shared/src/main/kotlin/org/javacs/kt/classpath/BackupClassPathResolver.kt b/shared/src/main/kotlin/org/javacs/kt/classpath/BackupClassPathResolver.kt index 65cd5b8d9..b3b0eb0db 100644 --- a/shared/src/main/kotlin/org/javacs/kt/classpath/BackupClassPathResolver.kt +++ b/shared/src/main/kotlin/org/javacs/kt/classpath/BackupClassPathResolver.kt @@ -18,6 +18,7 @@ object BackupClassPathResolver : ClassPathResolver { fun findKotlinStdlib(): Path? = findLocalArtifact("org.jetbrains.kotlin", "kotlin-stdlib") ?: findKotlinCliCompilerLibrary("kotlin-stdlib") + ?: findAlternativeLibraryLocation("kotlin-stdlib") private fun findLocalArtifact(group: String, artifact: String) = tryResolving("$artifact using Maven") { tryFindingLocalArtifactUsing(group, artifact, findLocalArtifactDirUsingMaven(group, artifact)) } @@ -70,6 +71,11 @@ private fun findKotlinCliCompilerLibrary(name: String): Path? = ?.orElse(null) +// alternative library locations like for snap +// (can probably just use elvis operator and multiple similar expressions for other install directories) +private fun findAlternativeLibraryLocation(name: String): Path? = + Paths.get("/snap/kotlin/current/lib/${name}.jar").existsOrNull() + private fun Path.existsOrNull() = if (Files.exists(this)) this else null