From ab8b6d449eb58de4011ff24e6608ea9a8ede1d81 Mon Sep 17 00:00:00 2001 From: crschnick Date: Wed, 3 Jan 2024 09:15:53 +0000 Subject: [PATCH] Rework checksums --- build.gradle | 10 +++++++++- dist/build.gradle | 16 +++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index d2880a8b..1cff6248 100644 --- a/build.gradle +++ b/build.gradle @@ -49,10 +49,18 @@ project.ext { website = 'https://xpipe.io' sourceWebsite = 'https://github.com/xpipe-io/xpipe' authors = 'Christopher Schnick' - artifactChecksums = new HashMap() javafxVersion = '21.0.1' } +def getArtifactChecksumSha256Hex(String name) { + var file = layout.buildDirectory.file("dist/checksums/artifacts/${name}.sha256") + return file.get().getAsFile().exists() ? file.get().getAsFile().text : ""; +} + +def getArtifactChecksumSha256Base64(String name) { + return Base64.getEncoder().encodeToString(HexFormat.of().parseHex(getArtifactChecksumSha256Hex(name))) +} + def replaceVariablesInFileAsString(String f, Map replacements) { def fileName = file(f).getName() def text = file(f).text diff --git a/dist/build.gradle b/dist/build.gradle index bea6f8b4..2b98f035 100644 --- a/dist/build.gradle +++ b/dist/build.gradle @@ -24,17 +24,27 @@ distZip { enabled = false; } + import org.gradle.crypto.checksum.Checksum + +import java.util.stream.Collectors + def distDir = layout.buildDirectory.get().dir('dist') task createChecksums(type: Checksum) { inputFiles.setFrom(distDir.dir('artifacts').getAsFileTree().files) - outputDirectory.set(layout.buildDirectory.dir("dist/checksums")) + outputDirectory.set(layout.buildDirectory.dir("dist/checksums/artifacts")) checksumAlgorithm.set(Checksum.Algorithm.SHA256) doLast { - for (final def file in distDir.dir('checksums').getAsFileTree().files) { - artifactChecksums.put(file.name.lastIndexOf('.').with {it != -1 ? file.name[0..() + for (final def file in outputDirectory.get().getAsFileTree().files) { + def name = file.name.lastIndexOf('.').with {it != -1 ? file.name[0.. e.getValue() + ' ' + e.getKey()) + .collect(Collectors.joining('\n')) } }