From 620b8c495de8c342785eff0d123bf8058080f6b8 Mon Sep 17 00:00:00 2001 From: nea Date: Fri, 10 Mar 2023 21:27:26 +0100 Subject: gradle publishing --- src/main/kotlin/mcprepack/App.kt | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'src/main') diff --git a/src/main/kotlin/mcprepack/App.kt b/src/main/kotlin/mcprepack/App.kt index 1972c62..2358722 100644 --- a/src/main/kotlin/mcprepack/App.kt +++ b/src/main/kotlin/mcprepack/App.kt @@ -420,6 +420,51 @@ fun main(): Unit = lifecycle("Repacking") { proguardLog.copyTo(mavenFile("official", "txt")) } + lifecycle("Generate gradle publication buildscript") { + WorkContext.workDir.resolve("settings.gradle.kts").createFile() + WorkContext.workDir.resolve("build.gradle.kts").writer().use { + it.append( + """ + plugins { `maven-publish` } + + val allGroupId = "moe.nea.mcp" + + publishing { + """ + ) + + fun pub(artifactId: String, version: String, artifacts: Map) { + it.append( + """ + publications.create("artifactId") { + ${ + artifacts.map { (classifier, path) -> + "this.artifact(file(${gson.toJson(path.toAbsolutePath().toString())})) {" + + (if (classifier == null) "" + else "this.classifier = ${gson.toJson(classifier)};") + "this.extension = \"jar\"}" + }.joinToString(separator = "\n") + } + this.groupId = allGroupId + this.artifactId = ${gson.toJson(artifactId)} + this.version = ${gson.toJson(version)} + } + """ + ) + } + + pub("mcp-yarn", pubVersion, mapOf(null to yarnCompatibleJar, "v2" to yarnCompatibleJar)) + it.append( + """ + publications.filterIsInstance().forEach { + it.pom { + url.set("https://git.nea.moe/nea/mcprepack") + } + } + }""" + ) + } + } + } fun readCSV(path: Path): CSVFile { -- cgit