Use NIO Files for creating temp files: build tools
This commit is contained in:
+2
-1
@@ -31,6 +31,7 @@ import org.jetbrains.org.objectweb.asm.ClassVisitor
|
||||
import org.jetbrains.org.objectweb.asm.FieldVisitor
|
||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
import java.time.LocalDateTime
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.util.zip.ZipFile
|
||||
@@ -126,7 +127,7 @@ internal fun runToolInSeparateProcess(
|
||||
|
||||
private fun writeArgumentsToFile(directory: File, argsArray: Array<String>): File {
|
||||
val compilerOptions =
|
||||
File.createTempFile(LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "_", ".compiler.options", directory)
|
||||
Files.createTempFile(directory.toPath(), LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "_", ".compiler.options").toFile()
|
||||
compilerOptions.deleteOnExit()
|
||||
compilerOptions.writeText(argsArray.joinToString(" ") { "\"${StringEscapeUtils.escapeJava(it)}\"" })
|
||||
return compilerOptions
|
||||
|
||||
+5
-4
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.utils
|
||||
|
||||
import org.gradle.api.Project
|
||||
import java.io.File
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Paths
|
||||
import java.util.*
|
||||
|
||||
@@ -28,10 +29,10 @@ internal fun File.relativeToRoot(project: Project): String =
|
||||
internal fun Iterable<File>.toSortedPathsArray(): Array<String> =
|
||||
map { it.canonicalPath }.toTypedArray().also { Arrays.sort(it) }
|
||||
|
||||
internal fun newTmpFile(prefix: String, suffix: String? = null, directory: File? = null, deleteOnExit: Boolean = true) =
|
||||
File.createTempFile(prefix, suffix, directory).apply {
|
||||
if (deleteOnExit) deleteOnExit()
|
||||
}
|
||||
internal fun newTmpFile(prefix: String, suffix: String? = null, directory: File? = null, deleteOnExit: Boolean = true): File =
|
||||
(if (directory == null) Files.createTempFile(prefix, suffix) else Files.createTempFile(directory.toPath(), prefix, suffix))
|
||||
.toFile()
|
||||
.apply { if (deleteOnExit) deleteOnExit() }
|
||||
|
||||
internal fun File.isParentOf(childCandidate: File, strict: Boolean = false): Boolean {
|
||||
val parentPath = Paths.get(this.absolutePath).normalize()
|
||||
|
||||
+11
-10
@@ -53,9 +53,10 @@ import org.jetbrains.kotlin.scripting.compiler.plugin.ConfigurationKt;
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar;
|
||||
import org.jetbrains.kotlin.utils.ParametersMapKt;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -138,17 +139,17 @@ public class ExecuteKotlinScriptMojo extends AbstractMojo {
|
||||
buildDirectory.mkdirs();
|
||||
}
|
||||
|
||||
File scriptFile = File.createTempFile("kotlin-maven-plugin-inline-script-", ".tmp.kts", buildDirectory);
|
||||
FileOutputStream stream = new FileOutputStream(scriptFile);
|
||||
stream.write(script.getBytes("UTF-8"));
|
||||
stream.close();
|
||||
Path scriptFile = Files.createTempFile(buildDirectory.toPath(), "kotlin-maven-plugin-inline-script-", ".tmp.kts");
|
||||
try (BufferedWriter writer = Files.newBufferedWriter(scriptFile, StandardCharsets.UTF_8)) {
|
||||
writer.write(script);
|
||||
}
|
||||
|
||||
try {
|
||||
executeScriptFile(scriptFile);
|
||||
executeScriptFile(scriptFile.toFile());
|
||||
} finally {
|
||||
boolean deleted = scriptFile.delete();
|
||||
boolean deleted = Files.deleteIfExists(scriptFile);
|
||||
if (!deleted) {
|
||||
getLog().warn("Error deleting " + scriptFile.getAbsolutePath());
|
||||
getLog().warn("Error deleting " + scriptFile.toAbsolutePath());
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
|
||||
Reference in New Issue
Block a user