override fun onStandardOutput()

in plugin-unity-agent/src/main/kotlin/jetbrains/buildServer/unity/detectors/DetectVirtualUnityEnvironmentCommand.kt [27:57]


    override fun onStandardOutput(text: String) {
        if (text.isBlank()) {
            return
        }

        text.split(LINE_END).forEach {
            if (it.startsWith("log:")) {
                LOG.debug(it.substringAfter("log:"))
                return@forEach
            }

            val path = substringBetween(it, PATH_START, PATH_END)
            val version = tryParseVersion(substringAfter(it, VERSION_START))
            if (!path.isNullOrBlank() && version != null) {
                val expectedVersion = runnerContext.unityVersionParam()
                if (expectedVersion != null && version != expectedVersion) {
                    LOG.info(
                        "Skipping Unity environment because the Unity version is different, " +
                            "path=$path; version=$version; expected version=$expectedVersion",
                    )
                    return
                }
                val environment = UnityEnvironment(path, version, true)
                if (!results.contains(environment)) {
                    results.add(environment)
                }
            } else {
                LOG.debug("Failed to parse standard output: $text")
            }
        }
    }