Skip to content

Commit 2301b9b

Browse files
committed
fixed #78: When using --idea the script argument should be symlinked into the tmp-project
1 parent 582acdb commit 2301b9b

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

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

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package kscript.app
22

33
import kscript.app.ShellUtils.requireInPath
4-
import java.io.BufferedReader
5-
import java.io.File
6-
import java.io.InputStream
7-
import java.io.InputStreamReader
4+
import java.io.*
85
import java.net.URL
96
import java.nio.file.Files
107
import java.nio.file.Paths
@@ -256,11 +253,19 @@ buildscript {
256253

257254
File(tmpProjectDir, "build.gradle").writeText(gradleScript)
258255

259-
// also copy script reource in
260-
File(tmpProjectDir, "src").apply {
256+
// also copy/symlink script resource in
257+
File(tmpProjectDir, "src").run {
261258
mkdir()
262-
scriptFile.copyTo(File(this, scriptFile.name))
263259

260+
val tmpProjectScript = File(this, scriptFile.name)
261+
262+
// https://stackoverflow.com/questions/17926459/creating-a-symbolic-link-with-java
263+
try {
264+
Files.createSymbolicLink(tmpProjectScript.toPath(), scriptFile.toPath());
265+
} catch (e: IOException) {
266+
errorMsg("Failed to create symbolic link to script. Copying instead...")
267+
scriptFile.copyTo(tmpProjectScript)
268+
}
264269
}
265270

266271
return "idea ${tmpProjectDir.absolutePath}"

0 commit comments

Comments
 (0)