fix: don't bother with error catching

This commit is contained in:
zaaarf 2023-08-27 01:07:53 +02:00
parent 5bd9f685b1
commit 4cb9bb46e0
No known key found for this signature in database
GPG key ID: 6445A5CD15E5B40C

View file

@ -21,60 +21,57 @@ public class MappingWriter {
/**
* The main function, must be passed exactly two arguments
* @param args the command line arguments
* @throws IOException if something goes wrong
* @throws IOException if something goes wrong while writing the file
* @throws ParseException if something goes wrong while parsin arguments
*/
public static void main(String[] args) throws IOException, ParseException {
try {
Options options = new Options()
.addOption("r", "reverse", false, "Writes down inverted mappings");
DefaultParser parser = new DefaultParser();
CommandLine cmdLine = parser.parse(options, args);
args = cmdLine.getArgs();
Options options = new Options()
.addOption("r", "reverse", false, "Writes down inverted mappings");
DefaultParser parser = new DefaultParser();
CommandLine cmdLine = parser.parse(options, args);
args = cmdLine.getArgs();
if(args.length != 3) {
System.err.println("Bad argument count!");
System.err.println("java -jar mapping-writer.jar [-r] <location> <format> <output>");
return;
}
//load the mapper
List<String> lines = MapperProvider.fetchFromLocalOrRemote(args[0]);
IMapper mapper = MapperProvider.getMapper(lines);
mapper.populate(lines, false);
if(cmdLine.hasOption("reverse"))
mapper = mapper.getInverted();
//load the writers
Map<String, IWriter> writerMap = new HashMap<>();
for(IWriter w : ServiceLoader.load(IWriter.class))
writerMap.put(w.uniqueId(), w);
//get the one we need
IWriter writer = writerMap.get(args[1]);
if(writer == null) {
System.err.printf("%s was not recognised as a valid format!", args[1]);
return;
}
//now for the file
File targetFile = new File(args[2]);
if(!targetFile.createNewFile()) {
System.out.println("File already exists!");
return;
}
if(!targetFile.canWrite()) {
System.out.println("Failed to write to file: access denied.");
return;
}
//call the writer
PrintWriter printWriter = new PrintWriter(new FileWriter(targetFile));
writer.write(mapper, printWriter);
printWriter.close();
} catch(ParseException ex) {
ex.printStackTrace();
if(args.length != 3) {
System.err.println("Bad argument count!");
System.err.println("java -jar mapping-writer.jar [-r] <location> <format> <output>");
return;
}
//load the mapper
List<String> lines = MapperProvider.fetchFromLocalOrRemote(args[0]);
IMapper mapper = MapperProvider.getMapper(lines);
mapper.populate(lines, false);
if(cmdLine.hasOption("reverse"))
mapper = mapper.getInverted();
//load the writers
Map<String, IWriter> writerMap = new HashMap<>();
for(IWriter w : ServiceLoader.load(IWriter.class))
writerMap.put(w.uniqueId(), w);
//get the one we need
IWriter writer = writerMap.get(args[1]);
if(writer == null) {
System.err.printf("%s was not recognised as a valid format!", args[1]);
return;
}
//now for the file
File targetFile = new File(args[2]);
if(!targetFile.createNewFile()) {
System.out.println("File already exists!");
return;
}
if(!targetFile.canWrite()) {
System.out.println("Failed to write to file: access denied.");
return;
}
//call the writer
PrintWriter printWriter = new PrintWriter(new FileWriter(targetFile));
writer.write(mapper, printWriter);
printWriter.close();
}
}