From be2b1d3c66f0ff2d475ce0e2d3c8672367ea6dbb Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 29 Dec 2021 16:16:45 +0000 Subject: [PATCH] Do not write file if contents are equal --- .../main/kotlin/BinaryCompatibilityConfigurator.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/BinaryCompatibilityConfigurator.kt b/buildSrc/src/main/kotlin/BinaryCompatibilityConfigurator.kt index 2ed88a169..00a8499f5 100644 --- a/buildSrc/src/main/kotlin/BinaryCompatibilityConfigurator.kt +++ b/buildSrc/src/main/kotlin/BinaryCompatibilityConfigurator.kt @@ -46,17 +46,23 @@ object BinaryCompatibilityConfigurator { private fun Project.getValidatorDir(dir: File) = ":validator" + project.path + ":${dir.name}" + private fun File.writeTextIfNeeded(text: String) { + if (!this.exists()) return this.writeText(text) + if (this.readText() == text) return + return this.writeText(text) + } + /** * @param targetName `null` for JVM projects. */ fun createValidator(project: Project, dir: File, targetName: String?) { - dir.resolve("build.gradle.kts").writeText( + dir.resolve("build.gradle.kts").writeTextIfNeeded( applyTemplate( project.path, if (targetName == null) "classes/kotlin/main" else "classes/kotlin/$targetName/main" ) ) - dir.resolve(".gitignore").writeText( + dir.resolve(".gitignore").writeTextIfNeeded( this::class.java.classLoader .getResourceAsStream("binary-compatibility-validator-ignore.txt")!!.readBytes().decodeToString() ) @@ -78,4 +84,4 @@ object BinaryCompatibilityConfigurator { .replace("$\$BUILD_DIR$$", buildDir) .replace("$\$PLUGIN_VERSION$$", Versions.binaryValidator) } -} \ No newline at end of file +}