From 772c664d479260287698124fe3773c2686f195cf Mon Sep 17 00:00:00 2001 From: Skylot Date: Thu, 28 Mar 2013 22:27:46 +0400 Subject: [PATCH] Store version number in manifest --- build.gradle | 3 ++- src/main/java/jadx/Consts.java | 4 +++- src/main/java/jadx/JadxArgs.java | 2 +- src/main/java/jadx/utils/Utils.java | 24 ++++++++++++++++++++++++ version | 1 + 5 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 version diff --git a/build.gradle b/build.gradle index 30b2f2a8a..76f904e9c 100644 --- a/build.gradle +++ b/build.gradle @@ -7,9 +7,10 @@ apply plugin: 'idea' sourceCompatibility = 1.6 targetCompatibility = 1.6 -version = 'dev' +version = file('version').readLines().get(0) mainClassName = "jadx.Main" +manifest.mainAttributes("jadx-version" : version) project.ext { mainSamplesClass = "jadx.samples.RunTests" diff --git a/src/main/java/jadx/Consts.java b/src/main/java/jadx/Consts.java index 821ca24a0..1a6c4b675 100644 --- a/src/main/java/jadx/Consts.java +++ b/src/main/java/jadx/Consts.java @@ -1,7 +1,9 @@ package jadx; +import jadx.utils.Utils; + public class Consts { - public static final String JADX_VERSION = "dev"; + public static final String JADX_VERSION = Utils.getJadxVersion(); public static final boolean DEBUG = false; diff --git a/src/main/java/jadx/JadxArgs.java b/src/main/java/jadx/JadxArgs.java index d77cad78b..b8876fb9d 100644 --- a/src/main/java/jadx/JadxArgs.java +++ b/src/main/java/jadx/JadxArgs.java @@ -110,7 +110,7 @@ public class JadxArgs { JCommander jc = new JCommander(this); // print usage in not sorted fields order (by default its sorted by description) PrintStream out = System.out; - out.println("jadx - dex to java decompiler, version: '" + Consts.JADX_VERSION + "'"); + out.println("jadx - dex to java decompiler, version: " + Consts.JADX_VERSION); out.println(); out.println("usage: jadx [options] " + jc.getMainParameterDescription()); out.println("options:"); diff --git a/src/main/java/jadx/utils/Utils.java b/src/main/java/jadx/utils/Utils.java index 6ca2ec636..a3a2835a2 100644 --- a/src/main/java/jadx/utils/Utils.java +++ b/src/main/java/jadx/utils/Utils.java @@ -1,11 +1,19 @@ package jadx.utils; +import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; +import java.net.URL; +import java.util.Enumeration; import java.util.Iterator; import java.util.List; +import java.util.jar.Manifest; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Utils { + private static final Logger LOG = LoggerFactory.getLogger(Utils.class); public static String cleanObjectName(String obj) { int last = obj.length() - 1; @@ -52,4 +60,20 @@ public class Utils { } return sb.toString(); } + + public static String getJadxVersion() { + try { + Enumeration resources = + new Utils().getClass().getClassLoader().getResources("META-INF/MANIFEST.MF"); + while (resources.hasMoreElements()) { + Manifest manifest = new Manifest(resources.nextElement().openStream()); + String ver = manifest.getMainAttributes().getValue("jadx-version"); + if (ver != null) + return ver; + } + } catch (IOException e) { + LOG.error("Can't get manifest file", e); + } + return "dev"; + } } diff --git a/version b/version new file mode 100644 index 000000000..bd73f4707 --- /dev/null +++ b/version @@ -0,0 +1 @@ +0.4