Skip to content

Commit 471dd8e

Browse files
oshaiholgerbrandl
authored andcommitted
Allow to include same file from multiple files (#133)
1 parent c87c725 commit 471dd8e

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

src/main/kotlin/kscript/app/AppHelpers.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -241,23 +241,23 @@ sourceSets.main.java.srcDirs 'src'
241241
// https://stackoverflow.com/questions/17926459/creating-a-symbolic-link-with-java
242242
createSymLink(File(this, scriptFile.name), scriptFile)
243243

244-
245244
// also symlink all includes
246-
includeURLs.forEach {
247-
val includeFileName = it.toURI().path.split("/").last()
248-
245+
includeURLs.distinctBy { it.fileName() }
246+
.forEach {
247+
249248
val includeFile = when {
250249
it.protocol == "file" -> File(it.toURI())
251250
else -> fetchFromURL(it.toString())
252251
}
253252

254-
createSymLink(File(this, includeFileName), includeFile)
253+
createSymLink(File(this, it.fileName()), includeFile)
255254
}
256255
}
257256

258257
return "idea ${tmpProjectDir.absolutePath}"
259258
}
260259

260+
private fun URL.fileName() = this.toURI().path.split("/").last()
261261

262262
private fun createSymLink(link: File, target: File) {
263263
try {
@@ -367,4 +367,4 @@ exec java -jar ${'$'}0 "${'$'}@"
367367
}
368368

369369
infoMsg("Finished packaging into ${pckgedJar}")
370-
}
370+
}

test/resources/diamond.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/usr/bin/env kscript
2+
3+
4+
@file:Include("includes/include_3.kt")
5+
@file:Include("includes/include_3.kt")
6+

0 commit comments

Comments
 (0)