}
dumper.initDumper(bSet);
}
public static void main(String[] args) {
Settings fullSettings;
String settingsJson;
Gson gson = new Gson();
String settingsFileName = SETTINGS_FILE;
for(int i = 0; i < args.length; ++i) {
if(args[i].equals("--config") && ++i < args.length) {
settingsFileName = args[i];
}
}
File debugFile = new File(DEBUG_FILE);
try {
debugOut = new BufferedWriter(Files.newWriterSupplier(debugFile, Charsets.UTF_8, true).getOutput());
} catch(IOException e1) {
System.err.println("WARN: Cannot write to debug file");
}
BufferedReader settingsReader;
if(settingsFileName.equals("-")) {
settingsReader = new BufferedReader(new InputStreamReader(System.in, Charsets.UTF_8));
} else {
File settingsFile = new File(settingsFileName);
try {
settingsReader = Files.newReader(settingsFile, Charsets.UTF_8);
} catch(FileNotFoundException e) {
System.err.println("ERROR: Can't find settings file ("+ settingsFile + ")");
return;
}
}
try {
settingsJson = CharStreams.toString(settingsReader);
} catch(IOException e) {
System.err.println("ERROR: Error while reading settings file");
return;
}
OuterSettings outerSettings;
try {
outerSettings = gson.fromJson(settingsJson, OuterSettings.class);
} catch(JsonSyntaxException e) {
System.err.println("ERROR: Settings file is malformed!");
return;
}
fullSettings = outerSettings.getSettings();
dumperEngine = fullSettings.getDumperEngine();
sourceEngine = fullSettings.getSourceEngine();
if(dumperEngine == null) dumperEngine = "DumperJSON";
if(sourceEngine == null) sourceEngine = "YotsubaJSON";
for(String boardName : fullSettings.getBoardSettings().keySet()) {
if("default".equals(boardName)) continue;
try {
spawnBoard(boardName, fullSettings);
} catch(BoardInitException e) {
System.err.println("ERROR: Error initializing dumper for /" + boardName + "/:");