From a77ae0bc3c1001997eb29d0bf23c5e83113a5b70 Mon Sep 17 00:00:00 2001 From: mingjun97 Date: Tue, 10 May 2022 18:34:30 -0700 Subject: [PATCH] Introduce `-version` argument to display version --- build.gradle | 16 ++++++++++++++++ src/main/java/emu/grasscutter/Grasscutter.java | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/build.gradle b/build.gradle index 4434ed28e..186a6d440 100644 --- a/build.gradle +++ b/build.gradle @@ -45,6 +45,14 @@ targetCompatibility = JavaVersion.VERSION_17 group = 'xyz.grasscutters' version = '1.1.1-dev' +def gitCommitHash = { + try { + return 'git rev-parse --verify --short HEAD'.execute().text.trim() + } catch (e) { + return "GIT_NOT_FOUND" + } +} + sourceCompatibility = 17 targetCompatibility = 17 @@ -97,6 +105,7 @@ application { mainClassName = 'emu.grasscutter.Grasscutter' } + jar { manifest { attributes 'Main-Class': 'emu.grasscutter.Grasscutter' @@ -113,6 +122,13 @@ jar { from('src/main/java') { include '*.xml' } + new File(projectDir, "src/generated/main/java/emu/grasscutter/BuildConfig.java").text = """ + package emu.grasscutter; + public class BuildConfig { + public static final String VERSION = \"${version}\"; + public static final String GIT_HASH = \"${gitCommitHash()}\"; + } + """ destinationDir = file(".") } diff --git a/src/main/java/emu/grasscutter/Grasscutter.java b/src/main/java/emu/grasscutter/Grasscutter.java index 73e761e6e..a192815d1 100644 --- a/src/main/java/emu/grasscutter/Grasscutter.java +++ b/src/main/java/emu/grasscutter/Grasscutter.java @@ -29,6 +29,7 @@ import emu.grasscutter.server.dispatch.DispatchServer; import emu.grasscutter.server.game.GameServer; import emu.grasscutter.tools.Tools; import emu.grasscutter.utils.Crypto; +import emu.grasscutter.BuildConfig; import javax.annotation.Nullable; @@ -82,6 +83,9 @@ public final class Grasscutter { case "-gachamap" -> { Tools.createGachaMapping(DATA("gacha_mappings.js")); exitEarly = true; } + case "-version" -> { + System.out.println("Grasscutter version: " + BuildConfig.VERSION + "\nGit Hash: " + BuildConfig.GIT_HASH); exitEarly = true; + } } }