in cli/src/main/java/nl/obren/sokrates/cli/CommandLineInterface.java [470:495]
private void generateAndSaveReports(File inputFile, File reportsFolder, File sokratesConfigFolder, CodeAnalyzer codeAnalyzer, CodeAnalysisResults analysisResults) {
File htmlReports = getHtmlFolder(reportsFolder);
File dataReports = dataExporter.getDataFolder();
File srcCache = dataExporter.getCodeCacheFolder();
CodeAnalyzerSettings codeAnalyzerSettings = codeAnalyzer.getCodeAnalyzerSettings();
if (new File(htmlReports, "index.html").exists() || codeAnalyzerSettings.isUpdateIndex()) {
info("HTML reports: <a href='" + htmlReports.getPath() + "/index.html'>" + htmlReports.getPath() + "</a>");
} else {
info("HTML reports: <a href='" + htmlReports.getPath() + "'>" + htmlReports.getPath() + "</a>");
}
info("Raw data: <a href='" + dataReports.getPath() + "'>" + dataReports.getPath() + "</a>");
if (analysisResults.getCodeConfiguration().getAnalysis().isCacheSourceFiles()) {
info("Source code cache : <a href='" + srcCache.getPath() + "'>" + srcCache.getPath() + "</a>");
}
info("");
info("");
BasicSourceCodeReportGenerator generator = new BasicSourceCodeReportGenerator(codeAnalyzerSettings, analysisResults, inputFile, reportsFolder);
List<RichTextReport> reports = generator.report();
reports.forEach(report -> {
info("Generating the '" + report.getId().toUpperCase() + "' report...");
ReportFileExporter.exportHtml(reportsFolder, "html", report);
});
if (!codeAnalyzerSettings.isDataOnly() && codeAnalyzerSettings.isUpdateIndex()) {
ReportFileExporter.exportReportsIndexFile(reportsFolder, analysisResults, sokratesConfigFolder);
}
}