From 6e9934a442394a9d0a81404c7480b8001939d92b Mon Sep 17 00:00:00 2001 From: Thog Date: Wed, 24 Aug 2016 01:59:26 +0200 Subject: Add mapping converter to command line system --- src/main/java/cuchaz/enigma/CommandMain.java | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'src/main/java/cuchaz/enigma/CommandMain.java') diff --git a/src/main/java/cuchaz/enigma/CommandMain.java b/src/main/java/cuchaz/enigma/CommandMain.java index 0678458..54f2707 100644 --- a/src/main/java/cuchaz/enigma/CommandMain.java +++ b/src/main/java/cuchaz/enigma/CommandMain.java @@ -65,7 +65,10 @@ public class CommandMain { protectify(args); } else if (command.equalsIgnoreCase("publify")) { publify(args); - } else { + } else if (command.equalsIgnoreCase("convertmappings")) { + convertMappings(args); + } + else { throw new IllegalArgumentException("Command not recognized: " + command); } } catch (IllegalArgumentException ex) { @@ -82,6 +85,8 @@ public class CommandMain { System.out.println("\t\tdeobfuscate []"); System.out.println("\t\tdecompile []"); System.out.println("\t\tprotectify "); + System.out.println("\t\tpublify "); + System.out.println("\t\tconvertmappings "); } private static void decompile(String[] args) throws Exception { @@ -125,6 +130,27 @@ public class CommandMain { return deobfuscator; } + private static void convertMappings(String[] args) throws Exception { + File fileMappings = getReadableFile(getArg(args, 1, "enigma mapping", true)); + File result = getWritableFile(getArg(args, 2, "enigma mapping", true)); + String name = getArg(args, 3, "format type", true); + Mappings.FormatType formatType = Mappings.FormatType.valueOf(name.toUpperCase()); + if (formatType == null) + throw new IllegalArgumentException(name + "is not a valid mapping format!"); + System.out.println("Reading mappings..."); + Mappings mappings = new MappingsEnigmaReader().read(fileMappings); + System.out.println("Saving new mappings..."); + switch (formatType) + { + case SRG_FILE: + mappings.saveSRGMappings(result); + break; + default: + mappings.saveEnigmaMappings(result, Mappings.FormatType.ENIGMA_FILE != formatType); + break; + } + } + private static String getArg(String[] args, int i, String name, boolean required) { if (i >= args.length) { if (required) { -- cgit v1.2.3