From e1e519ddb402d99e49e2a811465cb9fda73be750 Mon Sep 17 00:00:00 2001 From: Fabian Bender Date: Thu, 28 May 2026 08:49:10 +0200 Subject: [PATCH] ensure generated files are kept --- changelog.md | 4 +++ gradle-plugin/build.gradle | 2 +- .../kotlin/io/snabble/setup/DownloadTask.kt | 28 +++++++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/changelog.md b/changelog.md index 90f43da..5018bde 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,10 @@ # Changelog All notable changes to this project will be documented in this file. +## 1.0.3 +### Changes +- Add keep rules to prevent generated files to be sorted out by r8 + ## 1.0.2 ### Changes - Migrate to support Gradle 9.0 and higher diff --git a/gradle-plugin/build.gradle b/gradle-plugin/build.gradle index 082e652..13f987f 100644 --- a/gradle-plugin/build.gradle +++ b/gradle-plugin/build.gradle @@ -6,7 +6,7 @@ plugins { } group 'io.snabble' -version '1.0.2' +version '1.0.3' publishing { publications { diff --git a/gradle-plugin/src/main/kotlin/io/snabble/setup/DownloadTask.kt b/gradle-plugin/src/main/kotlin/io/snabble/setup/DownloadTask.kt index 0f0d323..d89e55b 100644 --- a/gradle-plugin/src/main/kotlin/io/snabble/setup/DownloadTask.kt +++ b/gradle-plugin/src/main/kotlin/io/snabble/setup/DownloadTask.kt @@ -4,7 +4,10 @@ import okhttp3.Request import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.provider.Property -import org.gradle.api.tasks.* +import org.gradle.api.tasks.CacheableTask +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.TaskAction import java.io.File import java.io.FileInputStream import java.io.IOException @@ -46,12 +49,23 @@ abstract class DownloadTask : DefaultTask() { val response = OkHttpClientFactory.createOkHttpClient() .newCall( Request.Builder() - .url(url.get()) - .build() + .url(url.get()) + .build() ).execute() if (response.isSuccessful) { val progressLogger = ProgressLoggerWrapper(logger, services, "Manifest") response.body.byteStream().safeToFileWithTempFile(target, progressLogger) + + outputDir.get().asFile + .resolve("raw") + .resolve("keep.xml") + .writeText( + """ + + """ + ) + } else { logger.error("Failed to download '${url.get()}'. Server returned status ${response.code}") } @@ -129,7 +143,10 @@ abstract class DownloadTask : DefaultTask() { * @throws IOException if an I/O error occurs */ @Throws(IOException::class) - private fun InputStream.safeToFileWithTempFile(destFile: File, progressLogger: ProgressLoggerWrapper) { + private fun InputStream.safeToFileWithTempFile( + destFile: File, + progressLogger: ProgressLoggerWrapper + ) { //create name of temporary file val tempFile = File.createTempFile(destFile.name, ".part", destFile.parentFile) @@ -147,7 +164,8 @@ abstract class DownloadTask : DefaultTask() { } catch (e: IOException) { throw IOException( "Failed to move temporary file '${tempFile.absolutePath}' to destination " + - "file '${destFile.absolutePath}'.", e) + "file '${destFile.absolutePath}'.", e + ) } }