# proguard-rules.pro
-dontcompress
# build.gradle.kts
// ./gradlew release7z -PreleaseVersion="1.4.0"
tasks.register<Task>("release7z") {
val obfuscate by tasks.getting
dependsOn(obfuscate)
val inputFiles = obfuscate.outputs.files
val libsDir = file("../libs/")
val releaseDir = file("../release/")
inputs.files(inputFiles)
outputs.dir(releaseDir)
doLast {
val jarFile = inputFiles.singleFile
val appName = rootProject.name
val appVersion = (project.findProperty("releaseVersion") as? String)
?.takeIf { it.isNotEmpty() }
?: ("-" + formatTimestamp())
val outDir = File(releaseDir, "$appName$appVersion")
val out7z = File(releaseDir, "$appName$appVersion.7z")
val outJarFile = File(outDir, jarFile.name)
libsDir.copyRecursively(outDir)
jarFile.copyTo(outJarFile)
exec {
commandLine("7z", "a", "-t7z", "-mx9", out7z, "$outDir/*")
}
outDir.deleteRecursively()
}
}
fun formatTimestamp(timestamp: Long = System.currentTimeMillis()): String {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss")
.withZone(ZoneId.systemDefault())
return Instant.ofEpochMilli(timestamp)
.atZone(formatter.zone)
.format(formatter)
}