in multiversion/src/main/scala/multiversion/loggers/DownloadProgressRenderer.scala [39:75]
override def renderStep(): ProgressStep = {
val activeLoggers = loggers
.getActiveLoggers()
.sortByCachedFunction(-_.maxDownloadSize())
if (activeLoggers.isEmpty) ProgressStep.empty
else {
val downloadSize = loggers.totalDownloadSize +
activeLoggers.iterator.map(_.downloadSize()).sum
val maxSize = loggers.totalMaxDownloadSize +
activeLoggers.iterator.map(_.downloadSize()).sum
val remaining = maxArtifacts - loggers.totalRootDependencies
val header = Doc.text(
List[String](
"Downloading:",
timer.formatPadded(),
s"$remaining/$maxArtifacts remaining",
s"(${Words.downloadedBytes.formatPadded(downloadSize)})"
).mkString(" ")
)
val rows = Doc.tabulate(
' ',
" ",
activeLoggers.take(12).map { logger =>
val max = Words.bytes.format(logger.maxDownloadSize())
val percentage = Words
.percentage(logger.maxDownloadSize())
.format(logger.downloadSize())
val doc =
if (logger.downloadSize() > 0) Doc.text(s"($percentage of $max)")
else Doc.empty
logger.name -> doc
}
)
val table = header + Doc.line + rows + Doc.line
ProgressStep().withDynamic(table)
}
}