From 8e7364e401064ca12e2e34d7c92f4c127e2ec179 Mon Sep 17 00:00:00 2001 From: Matthew Haughton <3flex@users.noreply.github.com> Date: Sat, 27 Apr 2024 18:38:57 +1000 Subject: [PATCH] Use cleaner Path functions (#7236) * Use createParentDirectories instead of createDirectories * Use absolute() instead of toAbsolutePath() --- .../io/gitlab/arturbosch/detekt/api/OutputReport.kt | 5 ++--- .../io/gitlab/arturbosch/detekt/api/EntitySpec.kt | 3 ++- .../io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt | 4 ++-- .../detekt/core/baseline/BaselineResultMapping.kt | 4 ++-- .../arturbosch/detekt/formatting/FormattingRuleSpec.kt | 3 ++- .../arturbosch/detekt/generator/out/AbstractWriter.kt | 10 ++-------- 6 files changed, 12 insertions(+), 17 deletions(-) diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/OutputReport.kt b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/OutputReport.kt index 06f82e3da6c..b231acc077b 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/OutputReport.kt +++ b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/OutputReport.kt @@ -1,7 +1,7 @@ package io.gitlab.arturbosch.detekt.api import java.nio.file.Path -import kotlin.io.path.createDirectories +import kotlin.io.path.createParentDirectories import kotlin.io.path.extension import kotlin.io.path.writeText @@ -25,8 +25,7 @@ abstract class OutputReport : Extension { assert(filePath.extension == ending) { "The $id needs to have a file ending of type .$ending, but was ${filePath.fileName}." } - filePath.parent?.createDirectories() - filePath.writeText(reportData) + filePath.createParentDirectories().writeText(reportData) } } diff --git a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/EntitySpec.kt b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/EntitySpec.kt index 906e1b0294a..6b41cb3fcb9 100644 --- a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/EntitySpec.kt +++ b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/EntitySpec.kt @@ -9,12 +9,13 @@ import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test import kotlin.io.path.Path +import kotlin.io.path.absolute import kotlin.io.path.relativeToOrSelf import kotlin.io.path.toPath class EntitySpec { - private val path = Path("src/test/resources/EntitySpecFixture.kt").toAbsolutePath() + private val path = Path("src/test/resources/EntitySpecFixture.kt").absolute() private val basePath = EntitySpec::class.java.getResource("/")!!.toURI().toPath() private val relativePath = path.relativeToOrSelf(basePath) private val code = compileForTest(path) diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt index 6baa6791b11..aacbf207076 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt +++ b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt @@ -34,9 +34,9 @@ internal class CliArgsSpec { @Test fun `the current working directory is used if parameter is not set`() { val spec = parseArguments(emptyArray()).toSpec() - val workingDir = Path("").toAbsolutePath() + val workingDir = Path("").absolute() - assertThat(spec.projectSpec.inputPaths).allSatisfy { it.toAbsolutePath().startsWith(workingDir) } + assertThat(spec.projectSpec.inputPaths).allSatisfy { it.absolute().startsWith(workingDir) } assertThat(spec.projectSpec.inputPaths).contains(pathBuildGradle) assertThat(spec.projectSpec.inputPaths).contains(pathCliArgs) assertThat(spec.projectSpec.inputPaths).contains(pathCliArgsSpec) diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/baseline/BaselineResultMapping.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/baseline/BaselineResultMapping.kt index eb13956fc4e..66346f4d2d3 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/baseline/BaselineResultMapping.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/baseline/BaselineResultMapping.kt @@ -5,7 +5,7 @@ import io.gitlab.arturbosch.detekt.api.ReportingExtension import io.gitlab.arturbosch.detekt.api.SetupContext import io.gitlab.arturbosch.detekt.api.getOrNull import java.nio.file.Path -import kotlin.io.path.createDirectories +import kotlin.io.path.createParentDirectories import kotlin.io.path.exists import kotlin.io.path.isRegularFile @@ -59,7 +59,7 @@ class BaselineResultMapping : ReportingExtension { val baselineFormat = BaselineFormat() val baseline = baselineFormat.of(oldBaseline.manuallySuppressedIssues, ids) if (oldBaseline != baseline) { - baselineFile.parent?.createDirectories() + baselineFile.createParentDirectories() baselineFormat.write(baselineFile, baseline) } } diff --git a/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRuleSpec.kt b/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRuleSpec.kt index 493ff12c808..6de4d046209 100644 --- a/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRuleSpec.kt +++ b/detekt-formatting/src/test/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRuleSpec.kt @@ -11,6 +11,7 @@ import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test import kotlin.io.path.Path +import kotlin.io.path.absolute class FormattingRuleSpec { @@ -69,7 +70,7 @@ class FormattingRuleSpec { @Test fun `#3063_ formatting issues have an absolute path`() { - val expectedPath = Path("src/test/resources/configTests/chain-wrapping-before.kt").toAbsolutePath() + val expectedPath = Path("src/test/resources/configTests/chain-wrapping-before.kt").absolute() val rule = ChainWrapping(Config.empty) val findings = rule.visitFile(compileForTest(expectedPath)) diff --git a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/out/AbstractWriter.kt b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/out/AbstractWriter.kt index b21b636b050..25d72887892 100644 --- a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/out/AbstractWriter.kt +++ b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/out/AbstractWriter.kt @@ -2,8 +2,7 @@ package io.gitlab.arturbosch.detekt.generator.out import java.io.PrintStream import java.nio.file.Path -import kotlin.io.path.createDirectories -import kotlin.io.path.exists +import kotlin.io.path.createParentDirectories import kotlin.io.path.writeText internal abstract class AbstractWriter( @@ -14,12 +13,7 @@ internal abstract class AbstractWriter( fun write(path: Path, fileName: String, content: () -> String) { val filePath = path.resolve("$fileName.$ending") - filePath.parent?.let { parentPath -> - if (!parentPath.exists()) { - parentPath.createDirectories() - } - } - filePath.writeText(content()) + filePath.createParentDirectories().writeText(content()) outputPrinter.println("Wrote: $filePath") } }