From d09cd0f37e6bb610ccb95a747e8c068484cf1b90 Mon Sep 17 00:00:00 2001 From: Jonas Tobias Hopusch Date: Sun, 2 Jan 2022 18:33:17 +0100 Subject: [PATCH] Determine application version by calling git describe --- build.gradle.kts | 11 ++++++++++- settings.gradle.kts | 2 +- src/main/java/de/jotoho/waituntil/Main.java | 18 +++++++++++++++--- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e595380..c5bd21b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -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. diff --git a/settings.gradle.kts b/settings.gradle.kts index bfe2fb2..599ab7a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -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" diff --git a/src/main/java/de/jotoho/waituntil/Main.java b/src/main/java/de/jotoho/waituntil/Main.java index a891ef3..9179c3f 100644 --- a/src/main/java/de/jotoho/waituntil/Main.java +++ b/src/main/java/de/jotoho/waituntil/Main.java @@ -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);