diff --git a/src/main/kotlin/kscript/app/AppHelpers.kt b/src/main/kotlin/kscript/app/AppHelpers.kt index a447d3b3..a6daf606 100644 --- a/src/main/kotlin/kscript/app/AppHelpers.kt +++ b/src/main/kotlin/kscript/app/AppHelpers.kt @@ -241,23 +241,23 @@ sourceSets.main.java.srcDirs 'src' // https://stackoverflow.com/questions/17926459/creating-a-symbolic-link-with-java createSymLink(File(this, scriptFile.name), scriptFile) - // also symlink all includes - includeURLs.forEach { - val includeFileName = it.toURI().path.split("/").last() - + includeURLs.distinctBy { it.fileName() } + .forEach { + val includeFile = when { it.protocol == "file" -> File(it.toURI()) else -> fetchFromURL(it.toString()) } - createSymLink(File(this, includeFileName), includeFile) + createSymLink(File(this, it.fileName()), includeFile) } } return "idea ${tmpProjectDir.absolutePath}" } +private fun URL.fileName() = this.toURI().path.split("/").last() private fun createSymLink(link: File, target: File) { try { @@ -367,4 +367,4 @@ exec java -jar ${'$'}0 "${'$'}@" } infoMsg("Finished packaging into ${pckgedJar}") -} \ No newline at end of file +} diff --git a/test/resources/diamond.kts b/test/resources/diamond.kts new file mode 100644 index 00000000..5f6e5c26 --- /dev/null +++ b/test/resources/diamond.kts @@ -0,0 +1,6 @@ +#!/usr/bin/env kscript + + +@file:Include("includes/include_3.kt") +@file:Include("includes/include_3.kt") +