fun executeConfigurationForHost()

in rider/src/main/kotlin/com/jetbrains/aspire/rider/run/AspireRunConfigurationManager.kt [42:80]


    fun executeConfigurationForHost(appHost: AspireAppHost, underDebug: Boolean) {
        val executor =
            if (underDebug) DefaultDebugExecutor.getDebugExecutorInstance()
            else DefaultRunExecutor.getRunExecutorInstance()

        val runManager = RunManager.getInstance(project)
        val selected = runManager.selectedConfiguration
        val selectedConfiguration = selected?.configuration
        if (selectedConfiguration != null && selectedConfiguration is AspireRunConfiguration) {
            if (appHost.mainFilePath == Path(selectedConfiguration.parameters.mainFilePath)) {
                ProgramRunnerUtil.executeConfiguration(selected, executor)
                return
            }
        }

        val configurations = runManager.getConfigurationSettingsList(AspireConfigurationType::class.java)
            .filter {
                val configuration = it.configuration
                if (configuration !is AspireRunConfiguration) return@filter false
                Path(configuration.parameters.mainFilePath) == appHost.mainFilePath
            }

        if (configurations.isEmpty()) {
            LOG.warn("Unable to find any Aspire run configurations with the given host path")
            return
        }

        val configurationName = configurationNames[appHost.mainFilePath]
        if (configurationName != null) {
            val configurationWithName = configurations.firstOrNull { it.name == configurationName }
            if (configurationWithName != null) {
                ProgramRunnerUtil.executeConfiguration(configurationWithName, executor)
                return
            }
        }

        val firstConfiguration = configurations.first()
        ProgramRunnerUtil.executeConfiguration(firstConfiguration, executor)
    }