From a4346a90701f3041d264edd428de000e3c8ff95a Mon Sep 17 00:00:00 2001 From: Runemoro Date: Tue, 25 Jun 2019 08:37:35 -0400 Subject: Add compose, convert, and invert commands (#152) * Add compose and invert commands and add support for conversion to tiny mappings * Improvements suggested by liach * Use Translator to get right entries --- .../enigma/command/ComposeMappingsCommand.java | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java (limited to 'src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java') diff --git a/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java b/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java new file mode 100644 index 0000000..1f6a069 --- /dev/null +++ b/src/main/java/cuchaz/enigma/command/ComposeMappingsCommand.java @@ -0,0 +1,37 @@ +package cuchaz.enigma.command; + +import cuchaz.enigma.throwables.MappingParseException; +import cuchaz.enigma.translation.mapping.EntryMapping; +import cuchaz.enigma.translation.mapping.tree.EntryTree; +import cuchaz.enigma.utils.Utils; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class ComposeMappingsCommand extends Command { + public ComposeMappingsCommand() { + super("compose-mappings"); + } + + @Override + public String getUsage() { + return " "; + } + + @Override + public boolean isValidArgument(int length) { + return length == 7; + } + + @Override + public void run(String... args) throws IOException, MappingParseException { + EntryTree left = MappingCommandsUtil.read(args[0], Paths.get(args[1])); + EntryTree right = MappingCommandsUtil.read(args[2], Paths.get(args[3])); + EntryTree result = MappingCommandsUtil.compose(left, right, args[6].equals("left") || args[6].equals("both"), args[6].equals("right") || args[6].equals("both")); + + Path output = Paths.get(args[5]); + Utils.delete(output); + MappingCommandsUtil.write(result, args[4], output); + } +} -- cgit v1.2.3