in intellij-plugin-verifier/verifier-intellij/src/main/java/com/jetbrains/pluginverifier/filtering/documented/DocumentedProblemsPageVerifierMain.kt [14:51]
fun main(args: Array<String>) {
println("WARN: CLI arguments are ignored. You can avoid passing them.")
val (repository, branch) = args + arrayOf("", "")
val url = "https://raw.githubusercontent.com/$repository/$branch/reference_guide/api_changes_list.md".takeIf {
repository.isNotBlank() && branch.isNotBlank()
}
val documentedPages = DocumentedProblemsPagesFetcher().fetchPages(url)
check(documentedPages.isNotEmpty()) { "No pages" }
val documentedProblemsParser = DocumentedProblemsParser(false)
for (page in documentedPages) {
val pageDescriptor = buildString {
appendLine("Source page URL: ${page.sourcePageUrl}")
appendLine("Web page URL: ${page.webPageUrl}")
appendLine("Edit page URL: ${page.editPageUrl}")
}
val documentedProblems = try {
documentedProblemsParser.parse(page.pageBody)
} catch (e: DocumentedProblemsParseException) {
throw RuntimeException(
buildString {
appendLine(pageDescriptor)
appendLine("Failed to parse documented problems page")
appendLine()
appendLine(e.message)
}
)
}
println("The following documented problems have been successfully parsed from page")
println(pageDescriptor)
for (documentedProblem in documentedProblems.sortedBy { it.javaClass.name }) {
println(documentedProblem)
}
println()
}
}