From ac4eaf915e937425edb0e39ddc35516bca14cec1 Mon Sep 17 00:00:00 2001 From: GRIMSIM Date: Mon, 16 Jun 2025 11:13:35 +0200 Subject: [PATCH] Sync npm version with Gradle version --- app/package.json | 2 +- build.gradle.kts | 42 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/app/package.json b/app/package.json index 6bf7f7c..9be10fc 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "gameyfin", - "version": "2.0.0-ALPHA", + "version": "2.0.0.beta1", "type": "module", "dependencies": { "@heroui/react": "2.7.9", diff --git a/build.gradle.kts b/build.gradle.kts index 02e842f..f582a65 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,13 @@ +import groovy.json.JsonOutput +import groovy.json.JsonSlurper +import org.gradle.internal.impldep.com.fasterxml.jackson.core.JsonGenerator import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile +import java.nio.file.Files + +group = "org.gameyfin" +version = "2.0.0.beta1" allprojects { repositories { @@ -19,8 +26,6 @@ plugins { subprojects { apply(plugin = "java") - version = "2.0.0.beta1" - java.sourceCompatibility = JavaVersion.VERSION_21 java.targetCompatibility = JavaVersion.VERSION_21 @@ -35,4 +40,35 @@ subprojects { } } -extra.set("pluginDir", rootProject.layout.buildDirectory.get().asFile.resolve("plugins")) \ No newline at end of file +extra.set("pluginDir", rootProject.layout.buildDirectory.get().asFile.resolve("plugins")) + +@Suppress("UNCHECKED_CAST") +val updatePackageJsonVersion by tasks.registering { + group = "build" + description = "Syncs package.json version with Gradle project version" + + doLast { + // Read the package.json file + val packageJson = file("app/package.json") + val parsedJson = JsonSlurper().parse(packageJson) as MutableMap + + // Update the version field with the Gradle project version + parsedJson["version"] = project.version.toString() + + // Convert the updated map back to a JSON string + var stringifiedJson = JsonOutput.toJson(parsedJson) + stringifiedJson = JsonOutput.prettyPrint(stringifiedJson) + + // Re-adjust indentation to 2 spaces (npm default) + stringifiedJson = stringifiedJson.replace(Regex("^((?: {4})+)", RegexOption.MULTILINE)) { + " ".repeat(it.value.length / 4) + } + + // Write the updated JSON back to package.json + Files.write(packageJson.toPath(), stringifiedJson.toByteArray()) + } +} + +tasks.named("build") { + dependsOn(updatePackageJsonVersion) +} \ No newline at end of file