!7 p { // First, rotate. File mainLog = programFile(#1010745, "webs-made.txt"); File fTriples = programFile(#1010745, "triples.gz"); rotateLogFile(mainLog); // Load webs new Map fiMap; L webs = websMadeByProgram(#1010745, fiMap); Pair> p = webs_tripelizable_nonTripelizable(webs); // Save triples File file = getProgramFile(#1010745, "triples.new.gz"); PrintWriter out = newPrintWriter(newGZIPOutputStream(file)); webs_toTripleFile(p.a, out); out.close(); // Save non-triples File file2 = getProgramFile(#1010745, "webs-made.new.gz"); out = newPrintWriter(newGZIPOutputStream(file2)); for (Web web : p.b) out.println(struct(fiMap.get(web))); out.close(); // Move data to backups File fBackups = programFile(#1010745, "backups"); for (File f : earlierPartsOfLogFile(mainLog)) { int n = 1; File p; while ((p = newFile(fBackups, dropSuffix(".gz", f.getName()) + ".part" + n + ".gz")).exists()) ++n; renameFile_assertTrue(f, p); } // Backup triples.gz int n = 1; File p; while ((p = newFile(fBackups, dropSuffix(".gz", fTriples.getName()) + ".part" + n + ".gz")).exists()) ++n; renameFile_assertTrue(fTriples, p); // Rename main files renameFile_assertTrue(file, fTriples); renameFile_assertTrue(file2, programFile(#1010745, "webs-made.part1.gz")); print("Stored " + nWeb(p.a) + " in " + f2s(file) + ", " + nWeb(p.b) + " in " + f2s(file2)); }