Determine application version by calling git describe

This commit is contained in:
Jonas Tobias Hopusch 2022-01-02 18:33:17 +01:00
parent fae31308e0
commit d09cd0f37e
Failed to generate hash of commit
3 changed files with 26 additions and 5 deletions

View file

@ -6,8 +6,17 @@ plugins {
id("com.github.johnrengelman.shadow") version "latest.release"
}
fun versionBanner(): String {
val os = org.apache.commons.io.output.ByteArrayOutputStream()
project.exec {
commandLine = "git describe --always --dirty".split(" ")
standardOutput = os
}
return String(os.toByteArray()).trim()
}
group = "de.jotoho"
version = "0.1.1"
version = versionBanner()
repositories {
// Use Maven Central for resolving dependencies.

View file

@ -7,4 +7,4 @@
* in the user manual at https://docs.gradle.org/7.2/userguide/multi_project_builds.html
*/
rootProject.name = "de.jotoho.waituntil"
rootProject.name = "waituntil"

View file

@ -1,6 +1,7 @@
package de.jotoho.waituntil;
import java.util.*;
import java.util.HashSet;
import java.util.Map;
import static de.jotoho.waituntil.GlobalConf.applicationOutputLanguage;
@ -35,8 +36,19 @@ public final class Main {
}
} else if (options.contains("version")) {
final var thisPackage = Main.class.getPackage();
final var appVersion = thisPackage.getImplementationVersion() != null ? thisPackage.getImplementationVersion() :"UNKNOWN";
System.out.println("de.jotoho.waituntil version " + appVersion);
final var appVersion = thisPackage.getImplementationVersion() != null
? thisPackage.getImplementationVersion()
: "version unknown";
System.out.println("waituntil " + appVersion);
System.out.println("""
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.""");
} else if (words.size() == 1) {
final var target = TimeCalculator.calculateAndAnnounceTargetTime(words.iterator().next());
Sleep.waitUntilTimeStamp(target);