fun main()

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()
    }
  }