diff --git a/src/main/java/com/gtnewhorizons/gtnhgradle/modules/PublishingModule.java b/src/main/java/com/gtnewhorizons/gtnhgradle/modules/PublishingModule.java index 4f5a37c0..8a8356d0 100644 --- a/src/main/java/com/gtnewhorizons/gtnhgradle/modules/PublishingModule.java +++ b/src/main/java/com/gtnewhorizons/gtnhgradle/modules/PublishingModule.java @@ -31,6 +31,7 @@ import java.io.File; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -91,7 +92,7 @@ public void apply(GTNHGradlePlugin.@NotNull GTNHExtension gtnh, @NotNull Project } } - final File changelogFile = new File(ObjectUtils.firstNonNull(System.getenv("CHANGELOG_FILE"), "CHANGELOG.md")); + final String changelog = getChangelog(project); // Modrinth final String mrToken = System.getenv("MODRINTH_TOKEN"); @@ -110,10 +111,9 @@ public void apply(GTNHGradlePlugin.@NotNull GTNHExtension gtnh, @NotNull Project .set(modVersion); mr.getVersionType() .set(modVersion.map(v -> v.endsWith("-pre") ? "beta" : "release")); - if (changelogFile.exists()) { - final String contents = Files.readString(changelogFile.toPath(), StandardCharsets.UTF_8); + if (changelog != null) { mr.getChangelog() - .set(contents); + .set(changelog); } mr.getUploadFile() .set(project.provider(() -> project.property("publishableObfJar"))); @@ -188,9 +188,9 @@ public void apply(GTNHGradlePlugin.@NotNull GTNHExtension gtnh, @NotNull Project task.apiToken = cfToken; task.disableVersionDetection(); task.upload(gtnh.configuration.curseForgeProjectId, obfFile, artifact -> { - if (changelogFile.exists()) { + if (changelog != null) { artifact.changelogType = "markdown"; - artifact.changelog = changelogFile; + artifact.changelog = changelog; } artifact.releaseType = modVersion.map(v -> v.endsWith("-pre") ? "beta" : "release"); artifact.addGameVersion(gtnh.configuration.minecraftVersion, "Forge"); @@ -229,6 +229,15 @@ public void apply(GTNHGradlePlugin.@NotNull GTNHExtension gtnh, @NotNull Project } } + private static String getChangelog(@NotNull Project project) throws Throwable { + Path changelogPath = project.getProjectDir() + .toPath() + .resolve(ObjectUtils.firstNonNull(System.getenv("CHANGELOG_FILE"), "CHANGELOG.md")); + if (Files.isRegularFile(changelogPath)) return Files.readString(changelogPath, StandardCharsets.UTF_8); + + return null; + } + private static final Set VALID_MODRINTH_SCOPES = ImmutableSet .of("required", "optional", "incompatible", "embedded");