Merge pull request #5148 from eatkins/supershell-console

Clear supershell lines before suppressed task
This commit is contained in:
eugene yokota 2019-10-03 20:46:28 -04:00 committed by GitHub
commit 22a6ff5d57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 5 deletions

View File

@ -57,6 +57,10 @@ private[sbt] final class TaskProgress(log: ManagedLogger)
ConsoleAppender.setTerminalWidth(JLine.terminal.getWidth)
}
override def beforeWork(task: Task[_]): Unit = {
super.beforeWork(task)
if (containsSkipTasks(Vector(task)) || lastTaskCount.get == 0) report()
}
override def afterReady(task: Task[_]): Unit = ()
override def afterCompleted[A](task: Task[A], result: Result[A]): Unit = ()
@ -76,10 +80,10 @@ private[sbt] final class TaskProgress(log: ManagedLogger)
val currentTasks = activeTasks.toVector.filterNot(Def.isDummy)
val ltc = lastTaskCount.get
val currentTasksCount = currentTasks.size
def report0(): Unit = {
def report0(tasks: Vector[Task[_]]): Unit = {
val event = ProgressEvent(
"Info",
currentTasks
tasks
.map { task =>
val elapsed = timings.get(task).currentElapsedMicros
ProgressItem(taskName(task), elapsed)
@ -92,9 +96,15 @@ private[sbt] final class TaskProgress(log: ManagedLogger)
import sbt.internal.util.codec.JsonProtocol._
log.logEvent(Level.Info, event)
}
if (containsSkipTasks(currentTasks)) ()
else report0()
if (containsSkipTasks(currentTasks)) {
if (ltc > 0) {
lastTaskCount.set(0)
report0(Vector.empty)
}
} else {
lastTaskCount.set(currentTasksCount)
report0(currentTasks)
}
}
private[this] def containsSkipTasks(tasks: Vector[Task[_]]): Boolean =