88 lines
2.8 KiB
Java
88 lines
2.8 KiB
Java
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<File> files = load(new File("workspaces.txt"));
|
|
long validated = 0;
|
|
long tokens = 0;
|
|
int count = 0;
|
|
|
|
boolean hasWriten = false;
|
|
|
|
Parser<JavaElement> 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++;
|
|
}
|
|
}
|
|
|
|
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<File> load(File config) throws Exception{
|
|
System.out.println("loading "+config.getAbsolutePath());
|
|
BufferedReader reader = new BufferedReader(new FileReader(config));
|
|
List<File> 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<File> result = new ArrayList<>();
|
|
for(File workspace : workspaces){
|
|
result.addAll(files(workspace));
|
|
System.out.println("Loaded["+result.size()+"] "+workspace.getAbsolutePath());
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private List<File> files(File dir){
|
|
List<File> result = new ArrayList<>();
|
|
if(dir.isDirectory()){
|
|
for(File file : dir.listFiles()) result.addAll(files(file));
|
|
}else result.add(dir);
|
|
return result;
|
|
}
|
|
|
|
}
|