private def writeLintReport()

in multiversion/src/main/scala/multiversion/commands/LintCommand.scala [113:144]


  private def writeLintReport(conflicts: List[LintDiagnostic], path: Option[Path]): Unit =
    path
      .foreach { out =>
        val grouped = conflicts.groupBy(_.target).toList.sortBy(_._1)
        val docs = grouped.map { case (target, conflicts) =>
          val isFailure = conflicts.exists(!_.isPending)
          val moduleVersions = conflicts
            .sortBy(_.module.repr)
            .map { case LintDiagnostic(_, module, _, versions, _) =>
              Docs.obj(
                List(
                  "dependency" -> Docs.literal(module.repr),
                  "versions" -> Docs.array(versions.sorted: _*)
                )
              )
            }
          Docs.dash + Doc.space + Docs.obj(
            List(
              "target" -> Docs.literal(target),
              "failure" -> Doc.str(isFailure),
              "conflicts" -> (Docs.openBracket + Doc
                .intercalate(Doc.comma + Doc.space, moduleVersions) + Docs.closeBracket)
            )
          )
        }
        val rendered = Doc.intercalate(Doc.line, docs).render(Int.MaxValue)
        if (out.toString() == "-") {
          writeToStdout(rendered)
        } else {
          writeToFile(rendered, out)
        }
      }