Gitnuro/src/main/kotlin/com/jetpackduba/gitnuro/terminal/OpenRepositoryInTerminalUseCase.kt
2024-05-08 15:11:47 +02:00

28 lines
1.0 KiB
Kotlin

package com.jetpackduba.gitnuro.terminal
import com.jetpackduba.gitnuro.repositories.AppSettingsRepository
import javax.inject.Inject
// For flatpak: https://github.com/flathub/com.visualstudio.code#use-host-shell-in-the-integrated-terminal
class OpenRepositoryInTerminalUseCase @Inject constructor(
private val terminalProvider: ITerminalProvider,
private val settings: AppSettingsRepository,
) {
operator fun invoke(path: String) {
val terminalEmulators = terminalProvider.getTerminalEmulators()
if (settings.terminalPath.isNotEmpty()) {
terminalProvider.startTerminal(TerminalEmulator("CUSTOM_TERMINAL", settings.terminalPath), path)
} else {
for (terminal in terminalEmulators) {
val isTerminalEmulatorInstalled = terminalProvider.isTerminalInstalled(terminal)
if (isTerminalEmulatorInstalled) {
terminalProvider.startTerminal(terminal, path)
break
}
}
}
}
}