From b004ebf919641a256c09c583bac3bd9f6bb7e38c Mon Sep 17 00:00:00 2001 From: Agaricus Date: Wed, 26 Dec 2012 23:27:22 -0800 Subject: [PATCH] Make jar renaming optional (only generate mappings if no 3rd argument given) --- src/main/java/net/md_5/specialsource/JarRemapper.java | 3 +++ .../java/net/md_5/specialsource/SpecialSource.java | 10 ++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/md_5/specialsource/JarRemapper.java b/src/main/java/net/md_5/specialsource/JarRemapper.java index 443db1e..ab7e4d3 100644 --- a/src/main/java/net/md_5/specialsource/JarRemapper.java +++ b/src/main/java/net/md_5/specialsource/JarRemapper.java @@ -161,6 +161,9 @@ public class JarRemapper extends Remapper { JarOutputStream out = new JarOutputStream(new FileOutputStream(target)); try { JarRemapper self = new JarRemapper(oldNames, newNames, jar, new File(target.getPath() + ".srg")); + if (jar == null) { + return; + } for (Enumeration entr = jar.file.entries(); entr.hasMoreElements();) { JarEntry entry = entr.nextElement(); diff --git a/src/main/java/net/md_5/specialsource/SpecialSource.java b/src/main/java/net/md_5/specialsource/SpecialSource.java index e151548..915bfde 100644 --- a/src/main/java/net/md_5/specialsource/SpecialSource.java +++ b/src/main/java/net/md_5/specialsource/SpecialSource.java @@ -35,9 +35,9 @@ import org.objectweb.asm.ClassReader; public class SpecialSource { public static void main(String[] args) throws Exception { - if (args.length != 3) { - System.err.println("SpecialSource takes 3 arguments. It will take 2 jars to generate a difference between, and a 3rd jar based on the first jar to rename to the second jar."); - System.err.println("Usage: java -jar SpecialSource.jar "); + if (args.length != 2 && args.length != 3) { + System.err.println("SpecialSource takes 2 or 3 arguments. It will take 2 jars to generate a difference between, and a 3rd jar based on the first jar to rename to the second jar."); + System.err.println("Usage: java -jar SpecialSource.jar []"); System.err.println("It is currently tuned to only accept a Minecraft v1.4.5 server jar as the 2 jars to compare"); return; } @@ -51,8 +51,10 @@ public class SpecialSource { JarComparer visitor2 = new JarComparer(jar2); visit(new Pair(jar1, jar2), new Pair(visitor1, visitor2), new Pair(jar1.main, jar2.main)); + Jar jar3 = (args.length == 3) ? Jar.init(args[2]) : null; + System.out.println("Renaming final jar"); - JarRemapper.renameJar(Jar.init(args[2]), new File("out.jar"), visitor1, visitor2); + JarRemapper.renameJar(jar3, new File("out.jar"), visitor1, visitor2); } private static void visit(Pair jars, Pair visitors, Pair classes) throws IOException {