diff --git a/src/main/java/org/cryptomator/launcher/Cryptomator.java b/src/main/java/org/cryptomator/launcher/Cryptomator.java index 6499856af..3cd5ec727 100644 --- a/src/main/java/org/cryptomator/launcher/Cryptomator.java +++ b/src/main/java/org/cryptomator/launcher/Cryptomator.java @@ -21,7 +21,9 @@ import javax.inject.Inject; import javax.inject.Singleton; import javafx.application.Application; import javafx.stage.Stage; +import java.util.Arrays; import java.util.List; +import java.util.Optional; import java.util.concurrent.Executors; @Singleton @@ -51,6 +53,20 @@ public class Cryptomator { } public static void main(String[] args) { + var printVersion = Optional.ofNullable(args) // + .stream() //Streams either one element (the args-array) or zero elements + .flatMap(Arrays::stream) // + .anyMatch(arg -> "-v".equals(arg) || "--version".equals(arg)); + + if (printVersion) { + var appVer = System.getProperty("cryptomator.appVersion", "SNAPSHOT"); + var buildNumber = System.getProperty("cryptomator.buildNumber", "SNAPSHOT"); + + //Reduce noise for parsers by using System.out directly + System.out.printf("Cryptomator version %s (build %s)%n", appVer, buildNumber); + return; + } + int exitCode = CRYPTOMATOR_COMPONENT.application().run(args); LOG.info("Exit {}", exitCode); System.exit(exitCode); // end remaining non-daemon threads.