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