ANSIProgressRenderer: allow progressTracker to be set to null

This commit is contained in:
Mike Hearn 2017-03-05 22:22:07 +01:00
parent 7898c902e4
commit 21f5f6d9d0

View File

@ -46,7 +46,7 @@ object ANSIProgressRenderer {
prevMessagePrinted = null
prevLinesDrawn = 0
draw(true)
subscription = value?.changes?.subscribe({ draw(true) }, { draw(true, it) })
subscription = value?.changes?.subscribe({ draw(true) }, { draw(true, it) }, { progressTracker = null; draw(true) })
}
private fun setup() {
@ -106,11 +106,9 @@ object ANSIProgressRenderer {
private var prevLinesDrawn = 0
@Synchronized private fun draw(moveUp: Boolean, error: Throwable? = null) {
val pt = progressTracker!!
if (!usingANSI) {
val currentMessage = pt.currentStepRecursive.label
if (currentMessage != prevMessagePrinted) {
val currentMessage = progressTracker?.currentStepRecursive?.label
if (currentMessage != null && currentMessage != prevMessagePrinted) {
println(currentMessage)
prevMessagePrinted = currentMessage
}
@ -125,6 +123,7 @@ object ANSIProgressRenderer {
// Put a blank line between any logging and us.
ansi.eraseLine()
ansi.newline()
val pt = progressTracker ?: return
var newLinesDrawn = 1 + pt.renderLevel(ansi, 0, error != null)
if (error != null) {