From 4d3e1675bb28c39f06f4fa1a0144963101a796dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20W=2E=20V=2E=20Tran-J=C3=B8rgensen?= Date: Thu, 8 Mar 2018 11:28:53 +0100 Subject: [PATCH] Add "-version" argument to the Overture command-line interface Closes #673 --- core/interpreter/pom.xml | 9 +++++++ .../java/org/overture/interpreter/VDMJ.java | 25 ++++++++++++++++++- .../src/main/resources/version.prop | 1 + 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 core/interpreter/src/main/resources/version.prop diff --git a/core/interpreter/pom.xml b/core/interpreter/pom.xml index 4e8c5b17b0..7a53f68e41 100644 --- a/core/interpreter/pom.xml +++ b/core/interpreter/pom.xml @@ -62,5 +62,14 @@ + + + src/main/resources + true + + **/*.prop + + + diff --git a/core/interpreter/src/main/java/org/overture/interpreter/VDMJ.java b/core/interpreter/src/main/java/org/overture/interpreter/VDMJ.java index c465ef1253..03763411a3 100644 --- a/core/interpreter/src/main/java/org/overture/interpreter/VDMJ.java +++ b/core/interpreter/src/main/java/org/overture/interpreter/VDMJ.java @@ -24,6 +24,8 @@ package org.overture.interpreter; import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Iterator; @@ -93,7 +95,13 @@ public static void main(String[] args) Properties.init(); // Read properties file, if any Settings.usingCmdLine = true; - + + if(largs.contains("-version")) + { + println(getOvertureVersion()); + System.exit(0); + } + for (Iterator i = largs.iterator(); i.hasNext();) { String arg = i.next(); @@ -418,6 +426,20 @@ public void run() System.exit(status == ExitStatus.EXIT_OK ? 0 : 1); } + + public static String getOvertureVersion() { + String path = "/version.prop"; + InputStream stream = VDMJ.class.getResourceAsStream(path); + if (stream == null) return "UNKNOWN"; + java.util.Properties props = new java.util.Properties(); + try { + props.load(stream); + stream.close(); + return (String)props.get("version"); + } catch (IOException e) { + return "UNKNOWN"; + } + } private static void usage(String msg) { @@ -444,6 +466,7 @@ private static void usage(String msg) System.err.println("-measures: disable recursive measure checking"); System.err.println("-log: enable real-time event logging"); System.err.println("-remote : enable remote control"); + System.err.println("-version: print Overture version number"); System.exit(1); } diff --git a/core/interpreter/src/main/resources/version.prop b/core/interpreter/src/main/resources/version.prop new file mode 100644 index 0000000000..e5683df88c --- /dev/null +++ b/core/interpreter/src/main/resources/version.prop @@ -0,0 +1 @@ +version=${project.version} \ No newline at end of file