Use new kotlin.io.path API in generators

This commit is contained in:
Ilya Gorbunov
2020-11-16 08:29:29 +03:00
parent dce3e57685
commit d38e145529
2 changed files with 8 additions and 7 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ val (interpreterSourceSet, interpreterApi) = extraSourceSet("interpreter")
dependencies { dependencies {
// for GeneratorsFileUtil // for GeneratorsFileUtil
compile(kotlinStdlib()) compile(kotlinStdlib("jdk8"))
compile(intellijDep()) { includeJars("util") } compile(intellijDep()) { includeJars("util") }
builtinsApi("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion") { isTransitive = false } builtinsApi("org.jetbrains.kotlin:kotlin-stdlib:$bootstrapKotlinVersion") { isTransitive = false }
+7 -6
View File
@@ -8,10 +8,10 @@ import com.intellij.openapi.util.SystemInfo
import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.util.text.StringUtil
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
import java.nio.file.Files import kotlin.io.path.*
import java.nio.file.StandardCopyOption
object GeneratorsFileUtil { object GeneratorsFileUtil {
@OptIn(ExperimentalPathApi::class)
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
@Throws(IOException::class) @Throws(IOException::class)
@@ -31,13 +31,14 @@ object GeneratorsFileUtil {
return return
} }
val useTempFile = !SystemInfo.isWindows val useTempFile = !SystemInfo.isWindows
val targetFile = file.toPath()
val tempFile = val tempFile =
if (useTempFile) File(createTempDir(file.name), file.name + ".tmp") else file if (useTempFile) createTempDirectory(targetFile.name) / "${targetFile.name}.tmp" else targetFile
tempFile.writeText(newText, Charsets.UTF_8) tempFile.writeText(newText, Charsets.UTF_8)
println("File written: " + tempFile.absolutePath) println("File written: ${tempFile.toAbsolutePath()}")
if (useTempFile) { if (useTempFile) {
Files.move(tempFile.toPath(), file.toPath(), StandardCopyOption.REPLACE_EXISTING) tempFile.moveTo(targetFile, overwrite = true)
println("Renamed $tempFile to $file") println("Renamed $tempFile to $targetFile")
} }
println() println()
} }