// Runs FILIUS's own readers of the e-mail account files on every case of a // list: EmailServer.kontenLaden on /mailserver/konten.txt ("server") and // EmailAnwendung.laden on /konten.txt ("client"). Writes the accounts Java // ends up with — the reference for packages/fls/src/javaEmail.ts. One case // per line: a whole file, ASCII with Java-style unicode escapes (backslash, // u, four hex digits). // // Usage: java -cp filius.jar:lib/*:classes EmailFileCases server|client import filius.hardware.knoten.Rechner; import filius.software.email.EmailAnwendung; import filius.software.email.EmailKonto; import filius.software.email.EmailServer; import filius.software.system.Datei; import filius.software.system.Dateisystem; import filius.software.system.InternetKnotenBetriebssystem; import java.io.FileOutputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; public class EmailFileCases { public static void main(String[] args) throws Exception { boolean server = args[0].equals("server"); List result = new ArrayList<>(); for (String line : Files.readAllLines(Path.of(args[1]), StandardCharsets.US_ASCII)) { InternetKnotenBetriebssystem system = (InternetKnotenBetriebssystem) new Rechner().getSystemSoftware(); Dateisystem fileSystem = system.getDateisystem(); Datei file = new Datei(); file.setName("konten.txt"); file.setDateiInhalt(IpCheckCases.unescape(line)); Object accounts; try { if (server) { EmailServer mail = new EmailServer(); mail.setSystemSoftware(system); fileSystem.speicherDatei(fileSystem.holeRootPfad() + Dateisystem.FILE_SEPARATOR + "mailserver", file); mail.kontenLaden(); accounts = FlsOracle.emailAccounts(mail.getListeBenutzerkonten()); } else { EmailAnwendung mail = new EmailAnwendung(); mail.setSystemSoftware(system); fileSystem.speicherDatei(fileSystem.getRoot(), file); mail.laden(); Map konten = mail.holeKontoListe(); accounts = konten.isEmpty() ? null : FlsOracle.emailAccounts(new ArrayList<>(konten.values())).get(0); } } catch (RuntimeException error) { accounts = "!" + error.getClass().getSimpleName(); } result.add(Arrays.asList(line, accounts)); } try (FileOutputStream out = new FileOutputStream(args[2])) { out.write((FlsOracle.Json.write(result, "") + "\n").getBytes(StandardCharsets.UTF_8)); } System.out.println("email " + args[0] + " cases: " + result.size()); System.exit(0); } }