From 8aa491de8c18cc610e2bc021ead94d8989d7cf35 Mon Sep 17 00:00:00 2001 From: Alex Saveau Date: Sun, 5 May 2019 18:24:04 -0700 Subject: [PATCH] Fix default language merge bugs (#561) - The distinct call was incorrectly excluding files it shouldn't have been - The hasGraphicCategory call is dependent on parent folder status which used to be changed as we processed files Signed-off-by: Alex Saveau --- .../github/triplet/gradle/play/tasks/GenerateResources.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/kotlin/com/github/triplet/gradle/play/tasks/GenerateResources.kt b/plugin/src/main/kotlin/com/github/triplet/gradle/play/tasks/GenerateResources.kt index 3ced979ae..61c3c41c2 100644 --- a/plugin/src/main/kotlin/com/github/triplet/gradle/play/tasks/GenerateResources.kt +++ b/plugin/src/main/kotlin/com/github/triplet/gradle/play/tasks/GenerateResources.kt @@ -19,7 +19,9 @@ import com.github.triplet.gradle.play.internal.nullOrFull import com.github.triplet.gradle.play.internal.orNull import com.github.triplet.gradle.play.internal.parents import com.github.triplet.gradle.play.internal.playPath +import org.gradle.api.Action import org.gradle.api.DefaultTask +import org.gradle.api.file.CopySpec import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.Internal @@ -72,7 +74,8 @@ open class GenerateResources : DefaultTask() { } inputs.removed { project.delete(file.findDest()) } - for (default in changedDefaults.reversed().distinctBy { it.name }) { + val writeQueue = mutableListOf>() + for (default in changedDefaults) { val listings = default.findDest().climbUpTo(LISTINGS_PATH)!! val relativePath = default.invariantSeparatorsPath.split("$defaultLocale/").last() @@ -82,11 +85,12 @@ open class GenerateResources : DefaultTask() { .filterNot(File::exists) .filterNot(::hasGraphicCategory) .forEach { - project.copy { + writeQueue += Action { from(default).into(File(resDir, it.parentFile.toRelativeString(resDir))) } } } + writeQueue.forEach { project.copy(it) } } private fun File.validate() {