suspend fun findEngine()

in agent/src/main/kotlin/com/jetbrains/teamcity/plugins/unrealengine/agent/UnrealEngineProvider.kt [32:48]


    suspend fun findEngine(runnerParameters: Map<String, String>): UnrealEngine {
        val mode = recover({ parseDetectionMode(runnerParameters) }) { raise(it.message) }

        val rootPath =
            when (mode) {
                is EngineDetectionMode.Automatic -> {
                    findAmongAgentInstalledEngines(mode.identifier)
                }
                is EngineDetectionMode.Manual -> {
                    UnrealEngineRootPath(context.resolveUserPath(mode.engineRootPath.value))
                }
            }

        val engineVersion = engineVersionDetector.detect(rootPath)

        return UnrealEngine(rootPath, engineVersion)
    }