Skip to content

Commit c40eb72

Browse files
committed
Change git hash detection
1 parent b466fb4 commit c40eb72

File tree

3 files changed

+24
-13
lines changed

3 files changed

+24
-13
lines changed

build.gradle.kts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
1+
import java.io.IOException
2+
13
plugins {
24
java
35
`java-library`
46
id("com.diffplug.spotless") version "6.1.2"
5-
id ("com.palantir.git-version") version "0.12.3"
67
}
78

8-
val versionDetails: groovy.lang.Closure<com.palantir.gradle.gitversion.VersionDetails> by extra
9-
val git = versionDetails()
10-
119
group = "de.bluecolored.bluemap.api"
1210

1311
val apiVersion: String by project
1412
version = apiVersion
1513

14+
fun String.runCommand(): String = ProcessBuilder(split("\\s(?=(?:[^'\"`]*(['\"`])[^'\"`]*\\1)*[^'\"`]*$)".toRegex()))
15+
.directory(projectDir)
16+
.redirectOutput(ProcessBuilder.Redirect.PIPE)
17+
.redirectError(ProcessBuilder.Redirect.PIPE)
18+
.start()
19+
.apply { waitFor(60, TimeUnit.SECONDS) }
20+
.run {
21+
val error = errorStream.bufferedReader().readText().trim()
22+
if (error.isNotEmpty()) {
23+
throw IOException(error)
24+
}
25+
inputStream.bufferedReader().readText().trim()
26+
}
27+
28+
val gitHash = "git rev-parse --verify HEAD".runCommand()
29+
val clean = "git status --porcelain".runCommand().isEmpty()
30+
println("Git hash: $gitHash" + if (clean) "" else " (dirty)")
31+
1632
val javaTarget = 11
1733
java {
1834
sourceCompatibility = JavaVersion.toVersion(javaTarget)
@@ -68,8 +84,7 @@ tasks.processResources {
6884

6985
expand (
7086
"version" to project.version,
71-
"gitHash" to git.gitHashFull,
72-
"gitClean" to git.isCleanTag
87+
"gitHash" to gitHash + if (clean) "" else " (dirty)"
7388
)
7489
}
7590
}

src/main/java/de/bluecolored/bluemap/api/BlueMapAPI.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,16 @@
4545
public abstract class BlueMapAPI {
4646

4747
@SuppressWarnings("unused")
48-
private static final String VERSION, GIT_HASH, GIT_CLEAN;
48+
private static final String VERSION, GIT_HASH;
4949
static {
50-
String version = "DEV", gitHash = "DEV", gitClean = "DEV";
50+
String version = "DEV", gitHash = "DEV";
5151
URL url = BlueMapAPI.class.getResource("/de/bluecolored/bluemap/api/version.json");
5252
if (url != null) {
5353
Gson gson = new Gson();
5454
try (InputStream in = url.openStream(); Reader reader = new InputStreamReader(in)) {
5555
JsonObject element = gson.fromJson(reader, JsonElement.class).getAsJsonObject();
5656
version = element.get("version").getAsString();
5757
gitHash = element.get("git-hash").getAsString();
58-
gitClean = element.get("git-clean").getAsString();
5958
} catch (Exception ex) {
6059
System.err.println("Failed to load version from resources!");
6160
ex.printStackTrace();
@@ -64,11 +63,9 @@ public abstract class BlueMapAPI {
6463

6564
if (version.equals("${version}")) version = "DEV";
6665
if (gitHash.equals("${gitHash}")) version = "DEV";
67-
if (gitClean.equals("${gitClean}")) version = "DEV";
6866

6967
VERSION = version;
7068
GIT_HASH = gitHash;
71-
GIT_CLEAN = gitClean;
7269
}
7370

7471
private static BlueMapAPI instance;
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{
22
"version": "${version}",
3-
"git-hash": "${gitHash}",
4-
"git-clean": "${gitClean}"
3+
"git-hash": "${gitHash}"
54
}

0 commit comments

Comments
 (0)