From b0ffbcd07dbe1e7c7de4d5c8b2197368c61b23de Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 21 Sep 2023 13:22:34 +0530 Subject: [PATCH] refactor(build): fix debug builds and groups to collection tasks --- .../claw/gradle/artifacts/CollectApksTask.kt | 32 ++++++++------ .../gradle/artifacts/CollectBundleTask.kt | 42 ++++++++++++------- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectApksTask.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectApksTask.kt index dbef7e6e..14814dfe 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectApksTask.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectApksTask.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2022 Harsh Shandilya. + * Copyright © 2022-2023 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. @@ -12,6 +12,7 @@ import java.nio.file.Files import java.nio.file.Path import java.nio.file.Paths import java.nio.file.StandardCopyOption +import kotlin.io.path.createDirectory import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.RegularFileProperty @@ -21,6 +22,7 @@ import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFile import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Optional import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.PathSensitive import org.gradle.api.tasks.PathSensitivity @@ -33,6 +35,7 @@ abstract class CollectApksTask : DefaultTask() { @get:InputFile @get:PathSensitive(PathSensitivity.NONE) + @get:Optional abstract val mappingFile: RegularFileProperty @get:Input abstract val variantName: Property @@ -41,27 +44,30 @@ abstract class CollectApksTask : DefaultTask() { @get:OutputDirectory abstract val outputDirectory: DirectoryProperty + override fun getGroup(): String { + return "artifact collection" + } + @TaskAction fun run() { - val outputDir = outputDirectory.asFile.get() - val outputDirStream = - Files.walk(outputDir.toPath()).sorted(Comparator.reverseOrder()).map(Path::toFile) - outputDirStream.forEach(File::delete) - outputDirStream.close() - outputDir.mkdirs() + val outputDir = outputDirectory.asFile.get().toPath() + Files.walk(outputDir).sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete) + outputDir.createDirectory() val builtArtifacts = builtArtifactsLoader.get().load(apkFolder.get()) ?: error("Cannot load APKs") builtArtifacts.elements.forEach { artifact -> Files.copy( Paths.get(artifact.outputFile), - outputDir.resolve("Claw-${variantName.get()}-${artifact.versionName}.apk").toPath(), + outputDir.resolve("Claw-${variantName.get()}-${artifact.versionName}.apk"), + StandardCopyOption.REPLACE_EXISTING, + ) + } + mappingFile.orNull?.apply { + Files.copy( + asFile.toPath(), + outputDir.resolve("mapping.txt"), StandardCopyOption.REPLACE_EXISTING, ) } - Files.copy( - mappingFile.get().asFile.toPath(), - outputDir.resolve("mapping.txt").toPath(), - StandardCopyOption.REPLACE_EXISTING, - ) } } diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectBundleTask.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectBundleTask.kt index c7285d58..4bff4bdd 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectBundleTask.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/artifacts/CollectBundleTask.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2022 Harsh Shandilya. + * Copyright © 2022-2023 Harsh Shandilya. * Use of this source code is governed by an MIT-style * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. @@ -10,19 +10,28 @@ import java.io.File import java.nio.file.Files import java.nio.file.Path import java.nio.file.StandardCopyOption +import kotlin.io.path.createDirectory import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.Optional import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity import org.gradle.api.tasks.TaskAction abstract class CollectBundleTask : DefaultTask() { - @get:InputFile abstract val bundleFile: RegularFileProperty + @get:InputFile + @get:PathSensitive(PathSensitivity.NONE) + abstract val bundleFile: RegularFileProperty - @get:InputFile abstract val mappingFile: RegularFileProperty + @get:InputFile + @get:PathSensitive(PathSensitivity.NONE) + @get:Optional + abstract val mappingFile: RegularFileProperty @get:Input abstract val variantName: Property @@ -30,23 +39,26 @@ abstract class CollectBundleTask : DefaultTask() { @get:OutputDirectory abstract val outputDirectory: DirectoryProperty + override fun getGroup(): String { + return "artifact collection" + } + @TaskAction fun taskAction() { - val outputDir = outputDirectory.asFile.get() - val outputDirStream = - Files.walk(outputDir.toPath()).sorted(Comparator.reverseOrder()).map(Path::toFile) - outputDirStream.forEach(File::delete) - outputDirStream.close() - outputDir.mkdirs() + val outputDir = outputDirectory.asFile.get().toPath() + Files.walk(outputDir).sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete) + outputDir.createDirectory() Files.copy( bundleFile.get().asFile.toPath(), - outputDir.resolve("Claw-${variantName.get()}-${versionName.get()}.aab").toPath(), - StandardCopyOption.REPLACE_EXISTING, - ) - Files.copy( - mappingFile.get().asFile.toPath(), - outputDir.resolve("mapping.txt").toPath(), + outputDir.resolve("Claw-${variantName.get()}-${versionName.get()}.aab"), StandardCopyOption.REPLACE_EXISTING, ) + mappingFile.orNull?.apply { + Files.copy( + asFile.toPath(), + outputDir.resolve("mapping.txt"), + StandardCopyOption.REPLACE_EXISTING, + ) + } } }