From 5bbb39b52d4238d5bd1a97d73a1488c7e720ea76 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Wed, 2 Aug 2023 16:51:31 +0200 Subject: [PATCH] build-logic: Make DownloadTask cacheable --- .../main/kotlin/bisq/gradle/tasks/download/DownloadTask.kt | 7 +++---- .../bisq/gradle/tasks/download/DownloadTaskFactory.kt | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTask.kt b/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTask.kt index d9f28ddf79..8d43287510 100644 --- a/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTask.kt +++ b/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTask.kt @@ -1,9 +1,8 @@ package bisq.gradle.tasks.download import org.gradle.api.DefaultTask -import org.gradle.api.file.RegularFile +import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property -import org.gradle.api.provider.Provider import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction @@ -17,7 +16,7 @@ abstract class DownloadTask : DefaultTask() { abstract val downloadUrl: Property @get:OutputFile - abstract val outputFile: Property> + abstract val outputFile: RegularFileProperty @TaskAction fun download() { @@ -30,7 +29,7 @@ abstract class DownloadTask : DefaultTask() { Channels.newChannel(inputStream).use { readableByteChannel -> println("Downloading: $url") - FileOutputStream(outputFile.get().get().asFile).use { fileOutputStream -> + FileOutputStream(outputFile.get().asFile).use { fileOutputStream -> fileOutputStream.channel .transferFrom(readableByteChannel, 0, Long.MAX_VALUE) } diff --git a/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTaskFactory.kt b/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTaskFactory.kt index 0319721cb9..ef71cefabf 100644 --- a/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTaskFactory.kt +++ b/build-logic/gradle-tasks/src/main/kotlin/bisq/gradle/tasks/download/DownloadTaskFactory.kt @@ -11,7 +11,7 @@ class DownloadTaskFactory( private val project: Project, private val downloadDirectoryPath: String ) { fun registerDownloadTask(taskName: String, url: Provider): TaskProvider { - val outputFileProvider: Provider> = url.map { + val outputFileProvider: Provider = url.flatMap { // url.file: // https://example.org/1.2.3/binary.exe -> 1.2.3/binary.exe val fileName = it.file.split("/").last()