override fun onStandardOutput()

in plugin-unity-agent/src/main/kotlin/jetbrains/buildServer/unity/logging/UnityLoggingListener.kt [23:75]


    override fun onStandardOutput(text: String) {
        currentBlock.apply {
            if (isBlockEnd(text)) {
                when (logLastLine) {
                    LogType.Outside -> {
                        logBlockClosed(name)
                        blocks.pop()
                        logMessage(text)
                    }
                    LogType.Inside -> {
                        logMessage(text)
                        logBlockClosed(name)
                        blocks.pop()
                    }
                    else -> {
                        logBlockClosed(name)
                        blocks.pop()
                    }
                }
                return
            }
        }

        val foundBlock = loggers.firstOrNull {
            it.isBlockStart(text)
        }
        if (foundBlock != null && foundBlock != currentBlock) {
            if (currentBlock != defaultBlock) {
                logBlockClosed(currentBlock.name)
                blocks.pop()
            }
            foundBlock.apply {
                when (logFirstLine) {
                    LogType.Outside -> {
                        logMessage(text)
                        logBlockOpened(name)
                        blocks.push(this)
                    }
                    LogType.Inside -> {
                        logBlockOpened(name)
                        blocks.push(this)
                        logMessage(text)
                    }
                    else -> {
                        logBlockOpened(name)
                        blocks.push(this)
                    }
                }
            }
        } else {
            logMessage(text)
        }
    }