xpipe-mirror/dist/build.gradle
crschnick 3e7fbe89ac Merge branch prefs into master
The changes have been squashed as the commit history and messages were not very carefully crafted. There isn't that much value in preserving random commit messages.

Also due to diverging branches, rebasing or merging it was difficult.
2024-02-28 07:36:31 +00:00

92 lines
2.7 KiB
Groovy

plugins {
id 'org.beryx.jlink' version '3.0.1'
id "org.asciidoctor.jvm.convert" version "3.3.2"
id 'org.jreleaser' version '1.8.0'
id("com.netflix.nebula.ospackage") version "11.4.0"
id 'org.gradle.crypto.checksum' version '1.4.0'
}
repositories {
mavenCentral()
}
task dist(type: DefaultTask) {}
distTar {
enabled = false;
}
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/artifacts"))
checksumAlgorithm.set(Checksum.Algorithm.SHA256)
doLast {
def artifactChecksumsSha256Hex = new HashMap<String, String>()
for (final def file in outputDirectory.get().getAsFileTree().files) {
if (file.toString().endsWith('mapping.map')) {
continue
}
def name = file.name.lastIndexOf('.').with {it != -1 ? file.name[0..<it] : file.name}
artifactChecksumsSha256Hex.put(name, file.text.trim())
}
file(layout.buildDirectory.dir("dist/checksums/sha256sums.txt")).text = artifactChecksumsSha256Hex.entrySet().stream()
.map(e -> e.getValue() + ' ' + e.getKey())
.collect(Collectors.joining('\n'))
}
}
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)))
}
clean {
doFirst {
// Fix clean failing when file is read-only
if (file("$distDir").exists()) {
file("$distDir").traverse { f -> if (f.exists() && f.isFile()) f.writable = true }
}
}
}
apply from: 'base.gradle'
apply from: 'jpackage.gradle'
if (rootProject.fullVersion) {
apply from: 'cli.gradle'
apply from: 'portable.gradle'
apply from: 'proguard.gradle'
if (org.gradle.internal.os.OperatingSystem.current().isLinux()) {
apply from: 'linux_packages.gradle'
} else if (org.gradle.internal.os.OperatingSystem.current().isWindows()) {
apply from: 'msi.gradle'
} else if (org.gradle.internal.os.OperatingSystem.current().isMacOsX()) {
apply from: 'pkg.gradle'
}
apply from: 'jreleaser.gradle'
apply from: 'aur.gradle'
apply from: 'nix.gradle'
apply from: 'choco.gradle'
apply from: 'install.gradle'
}