package at.chille.crawler.analysis;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Main
{
protected List<Analysis> analysisMethods;
protected boolean alwaysTerminate = false;
protected void showMenu()
{
System.out.println("\n");
int i = 0;
for (Analysis a : analysisMethods)
{
System.out.println(i++ + ". " + a.getName());
}
System.out.println("Your Choice: ");
}
public Analysis menu()
{
int wahl = -1;
BufferedReader console = new BufferedReader(new InputStreamReader(
System.in));
while (wahl < 0)
{
try
{
showMenu();
wahl = Integer.parseInt(console.readLine());
}
catch (Exception ex)
{
}
if (wahl >= analysisMethods.size())
{
wahl = -1;
}
}
return analysisMethods.get(wahl);
}
public void run()
{
System.out.print("Init Database... ");
DatabaseManager.getInstance();
System.out.print("Done.\n");
System.out.print("Init Analysis... ");
initAnalysis();
System.out.print("Done.\n");
String folder = "./export/";
new File(folder).mkdirs();
int error = 0;
do
{
Analysis analysis = menu();
error = analysis.start();
String output = analysis.exportToFolder(folder);
System.out.println("Exported Details: " + output);
}
while (error >= 0 && !alwaysTerminate);
}
protected void initAnalysis()
{
analysisMethods = new ArrayList<Analysis>();
analysisMethods.add(new AnalysisExit());
analysisMethods.add(new AnalysisRunAll(false));
analysisMethods.add(new AnalysisListHosts(false));
analysisMethods.add(new AnalysisCertIssuers(false));
analysisMethods.add(new AnalysisCertificateValid(false));
analysisMethods.add(new AnalysisSSL(false));
analysisMethods.add(new AnalysisHeader(false));
analysisMethods.add(new AnalysisCookies(false));
alwaysTerminate = true; // TODO: set to false
}
public static void main(String[] args)
{
Main main = new Main();
main.run();
}
}