import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.List; import be.jeffcheasey88.peeratcode.parser.Parser; import be.jeffcheasey88.peeratcode.parser.TokenValidator; import be.jeffcheasey88.peeratcode.parser.java.JavaElement; import be.jeffcheasey88.peeratcode.parser.java.JavaFile; import be.jeffcheasey88.peeratcode.parser.java.JavaParser; class GlobalCover { public static void main(String[] args) throws Exception { new GlobalCover().workspace(); } void workspace() throws Exception{ List files = load(new File("workspaces.txt")); long validated = 0; long tokens = 0; int count = 0; boolean hasWriten = false; Parser parser = new JavaParser(); long time = System.currentTimeMillis(); for(File file : files){ if(file.getName().endsWith(".java")){ System.out.println("try "+file.getAbsolutePath()); BufferedReader reader = new BufferedReader(new FileReader(file)); parser.parse(reader, new JavaFile()); reader.close(); if((!hasWriten) && TokenValidator.MAX_VALIDATE < TokenValidator.TOKENS){ parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt")))); hasWriten = true; System.out.println("Write of file "+file.getAbsolutePath()); } validated += TokenValidator.MAX_VALIDATE; tokens += TokenValidator.TOKENS; System.out.println(validated+" / "+tokens); TokenValidator.MAX_VALIDATE = 0; TokenValidator.TOKENS = 0; count++; if(hasWriten) break; } } time = ((System.currentTimeMillis()-time)/1000); String data = "{\"hash\": "+System.currentTimeMillis()+",\"time\": "+time+",\"percentage\": "+String.format("%.3f", ((validated/((double)tokens))*100.0)).replace(",", ".")+",\"validated\": "+validated+",\"files\": "+count+"}"; File file = new File("/home/tmp_.txt"); BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write(data+"\n"); writer.flush(); writer.close(); } private List load(File config) throws Exception{ System.out.println("loading "+config.getAbsolutePath()); BufferedReader reader = new BufferedReader(new FileReader(config)); List workspaces = new ArrayList<>(); String line; while((line = reader.readLine()) != null) workspaces.add(new File(line)); reader.close(); System.out.println("loaded "+workspaces.size()+" workspaces"); List result = new ArrayList<>(); for(File workspace : workspaces){ result.addAll(files(workspace)); System.out.println("Loaded["+result.size()+"] "+workspace.getAbsolutePath()); } return result; } private List files(File dir){ List result = new ArrayList<>(); if(dir.isDirectory()){ for(File file : dir.listFiles()) result.addAll(files(file)); }else result.add(dir); return result; } }