From 68354bd6f3d5500dd953d20682763c789cba9db6 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Fri, 26 May 2023 18:15:13 +0200 Subject: [PATCH 1/2] Added CurseForge task configuration --- .gitignore | 6 ++++++ build.gradle | 38 +++++++++++++++++++++++++++++++++++ changelog | 0 curseforge.properties.example | 5 +++++ 4 files changed, 49 insertions(+) create mode 100644 changelog create mode 100644 curseforge.properties.example diff --git a/.gitignore b/.gitignore index 231f1afed..2b15b7112 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,9 @@ build # other run + +# CurseForge configuration +/curseforge.properties + +# Changelog backup +/changelog.bak \ No newline at end of file diff --git a/build.gradle b/build.gradle index 2817f3c3c..9a1ea516d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,6 @@ +import java.nio.file.Files +import java.nio.file.Paths + buildscript { repositories { maven { url = 'https://maven.minecraftforge.net/' } @@ -10,6 +13,14 @@ buildscript { } apply plugin: 'forge' +apply plugin: 'curseforge' + + +if(Files.exists(Paths.get("curseforge.properties"))) { + // Load CurseForge configuration + ext.cfprops = parseConfig(file("curseforge.properties")) +} + def version_name = version = mod_version if(!mod_build_number.isEmpty()) { version_name = mod_version + "_X" + mod_build_number @@ -114,3 +125,30 @@ task version { println project.version } } + +if(Files.exists(Paths.get("curseforge.properties"))) { + curse { + apiKey = cfprops.api_key + projectId = cfprops.project_id + releaseType = "release" + + if (Files.exists(Paths.get("changelog"))) { + changelog = String.join("\r\n", Files.readAllLines(Paths.get("changelog"))) + + // Perform a backup of the changelog and create a new file for next changes + doLast { + Files.move(Paths.get("changelog"), Paths.get("changelog.bak")) + Files.createFile(Paths.get("changelog")) + } + } + } +} + +// Properties file parsing helper +static def parseConfig(File config) { + config.withReader { + def prop = new Properties() + prop.load(it) + return (new ConfigSlurper().parse(prop)) + } +} diff --git a/changelog b/changelog new file mode 100644 index 000000000..e69de29bb diff --git a/curseforge.properties.example b/curseforge.properties.example new file mode 100644 index 000000000..002b2b4f5 --- /dev/null +++ b/curseforge.properties.example @@ -0,0 +1,5 @@ +# CurseForge API token (obtainable from https://legacy.curseforge.com/account/api-tokens) +api_key= + +# CurseForge project ID +project_id= From e20c4f16118a0b48f0e68bef3e4bbf72d89f0c54 Mon Sep 17 00:00:00 2001 From: Toshayo <67237514+Toshayo@users.noreply.github.com> Date: Fri, 26 May 2023 18:26:43 +0200 Subject: [PATCH 2/2] Update .gitignore Newlines are good --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2b15b7112..22222fc39 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,4 @@ run /curseforge.properties # Changelog backup -/changelog.bak \ No newline at end of file +/changelog.bak