in ide-diff-builder/src/main/java/org/jetbrains/ide/diff/builder/cli/ApiQualityCheckCommand.kt [66:108]
override fun execute(freeArgs: List<String>) {
val cliOptions = CliOptions()
val args = Args.parse(cliOptions, freeArgs.toTypedArray(), false)
if (args.size < 2) {
System.err.println("Paths to <IDE> <metadata.json> must be specified.")
exitProcess(1)
}
val idePath = Paths.get(args[0])
require(idePath.exists()) { "IDE does not exist: $idePath" }
require(idePath.isDirectory) { "IDE is not a directory: $idePath" }
val metadataPath = Paths.get(args[1])
require(metadataPath.exists()) { "Metadata file does not exist: $metadataPath" }
require(metadataPath.extension == "json") { "Metadata is not a .json file: $metadataPath" }
val pluginsBuiltFromSources = readPluginsBuiltFromSources(cliOptions)
val classFilter = cliOptions.classFilter()
LOG.info(classFilter.toString())
val currentBranch = cliOptions.currentBranch.toInt()
val maxRemovalBranch = cliOptions.maxRemovalBranch.toInt()
val minExperimentalBranch = cliOptions.minExperimentalBranch.toInt()
val checkSfrVersionPresence = cliOptions.checkSfrVersionPresence.toBoolean()
val qualityOptions = ApiQualityOptions(currentBranch, maxRemovalBranch, minExperimentalBranch, checkSfrVersionPresence)
val metadata = JsonApiReportReader().readApiReport(metadataPath)
val ide = IdeManager.createManager().createIde(idePath)
val qualityReport = ApiQualityReport(ide.version, qualityOptions)
checkApi(ide, classFilter, metadata, qualityOptions, qualityReport)
findNonDynamicExtensionPoints(ide, pluginsBuiltFromSources, qualityReport)
val tc = TeamCityLog(System.out)
val newTcHistory = printReport(qualityReport, tc)
newTcHistory.writeToFile(Paths.get("tc-tests.json"))
val previousTcHistory = cliOptions.previousTcTestsFile?.let { Paths.get(it) }?.let { TeamCityHistory.readFromFile(it) }
if (previousTcHistory != null) {
newTcHistory.reportOldSkippedTestsSuccessful(previousTcHistory, tc)
}
}