From 8f97f22e8071064706cf657d40203aeb00ac57bf Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <janne@kuschku.de>
Date: Sat, 5 Mar 2022 17:47:49 +0100
Subject: [PATCH] build: determine version from git tags

---
 build.gradle.kts                              |  2 +-
 .../main/kotlin/justjanne.version.gradle.kts  | 23 +++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 gradle/convention/src/main/kotlin/justjanne.version.gradle.kts

diff --git a/build.gradle.kts b/build.gradle.kts
index 05abe8e..a0f9cf8 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -8,6 +8,7 @@
  */
 
 plugins {
+  id("justjanne.version")
   id("justjanne.dokka")
   id("justjanne.publish-maven-central")
   idea
@@ -15,4 +16,3 @@ plugins {
 }
 
 group = "de.justjanne.libquassel"
-version = "0.10.1"
diff --git a/gradle/convention/src/main/kotlin/justjanne.version.gradle.kts b/gradle/convention/src/main/kotlin/justjanne.version.gradle.kts
new file mode 100644
index 0000000..3c0ef79
--- /dev/null
+++ b/gradle/convention/src/main/kotlin/justjanne.version.gradle.kts
@@ -0,0 +1,23 @@
+import org.gradle.api.Project
+
+/*
+ * libquassel
+ * Copyright (c) 2022 Janne Mareike Koschinski
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public License,
+ * v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ * obtain one at https://mozilla.org/MPL/2.0/.
+ */
+
+version = cmd("git", "describe", "--always", "--tags", "HEAD") ?: "1.0.0"
+
+fun Project.cmd(vararg command: String) = try {
+  val stdOut = java.io.ByteArrayOutputStream()
+  exec {
+    commandLine(*command)
+    standardOutput = stdOut
+  }
+  stdOut.toString(Charsets.UTF_8.name()).trim()
+} catch (e: Throwable) {
+  null
+}
-- 
GitLab