func saveReport()

in internal/core/system.go [336:378]


func saveReport(c corescan.Context) {
	prod := c.Prod()
	if !qdenv.IsContainer() || (!c.SaveReport() && !c.ShowReport()) {
		return
	}

	reportConverter := filepath.Join(prod.IdeBin(), "intellij-report-converter.jar")
	if _, err := os.Stat(reportConverter); os.IsNotExist(err) {
		log.Fatal("Not able to save the report: report-converter is missing")
		return
	}
	log.Println("Generating HTML report ...")
	javaPath := prod.JbrJava()
	if javaPath == "" {
		log.Error(
			"HTML report is not generated because Java is not installed. " +
				"See requirements in our documentation: https://www.jetbrains.com/help/qodana/deploy-qodana.html",
		)
		return
	}
	if res, err := utils.RunCmd(
		"",
		strutil.QuoteForWindows(prod.JbrJava()),
		"-jar",
		strutil.QuoteForWindows(reportConverter),
		"-s",
		strutil.QuoteForWindows(c.ProjectDir()),
		"-d",
		strutil.QuoteForWindows(c.ResultsDir()),
		"-o",
		strutil.QuoteForWindows(platform.ReportResultsPath(c.ReportDir())),
		"-n",
		"result-allProblems.json",
		"-f",
	); res > 0 || err != nil {
		os.Exit(res)
	}
	err := utils.CopyDir(filepath.Join(prod.Home, "web"), c.ReportDir())
	if err != nil {
		log.Fatal("Not able to save the report: ", err)
		return
	}
}