blob: 75d3791d70b532160e0800ede924ae8c324f945a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
package cuchaz.enigma.command;
import cuchaz.enigma.translation.mapping.EntryMapping;
import cuchaz.enigma.translation.mapping.serde.MappingFormat;
import cuchaz.enigma.translation.mapping.tree.EntryTree;
import java.io.File;
import java.nio.file.Path;
import java.util.Locale;
public class ConvertMappingsCommand extends Command {
public ConvertMappingsCommand() {
super("convertmappings");
}
@Override
public String getUsage() {
return "<enigma mappings> <converted mappings> <ENIGMA_FILE|ENIGMA_DIRECTORY|SRG_FILE>";
}
@Override
public boolean isValidArgument(int length) {
return length == 3;
}
@Override
public void run(String... args) throws Exception {
Path fileMappings = getReadablePath(getArg(args, 0, "enigma mappings", true));
File result = getWritableFile(getArg(args, 1, "converted mappings", true));
String name = getArg(args, 2, "format desc", true);
MappingFormat saveFormat;
try {
saveFormat = MappingFormat.valueOf(name.toUpperCase(Locale.ROOT));
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException(name + "is not a valid mapping format!");
}
System.out.println("Reading mappings...");
MappingFormat readFormat = chooseEnigmaFormat(fileMappings);
EntryTree<EntryMapping> mappings = readFormat.read(fileMappings, new ConsoleProgressListener());
System.out.println("Saving new mappings...");
saveFormat.write(mappings, result.toPath(), new ConsoleProgressListener());
}
}
|