Show error message from the Execute command's result
This commit is contained in:
parent
5cd5901bc5
commit
8fb5565f74
|
@ -6,6 +6,7 @@ import com.artemchep.keyguard.common.io.ioEffect
|
||||||
import com.artemchep.keyguard.common.service.execute.ExecuteCommand
|
import com.artemchep.keyguard.common.service.execute.ExecuteCommand
|
||||||
import com.artemchep.keyguard.platform.CurrentPlatform
|
import com.artemchep.keyguard.platform.CurrentPlatform
|
||||||
import com.artemchep.keyguard.platform.Platform
|
import com.artemchep.keyguard.platform.Platform
|
||||||
|
import kotlinx.coroutines.coroutineScope
|
||||||
import org.kodein.di.DirectDI
|
import org.kodein.di.DirectDI
|
||||||
|
|
||||||
class ExecuteCommandImpl(
|
class ExecuteCommandImpl(
|
||||||
|
@ -48,7 +49,7 @@ private class ExecuteCommandCmd : ExecuteCommand {
|
||||||
"/c",
|
"/c",
|
||||||
command,
|
command,
|
||||||
)
|
)
|
||||||
Runtime.getRuntime().exec(arr)
|
executeCommand(arr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@ private class ExecuteCommandBash : ExecuteCommand {
|
||||||
"-c",
|
"-c",
|
||||||
command,
|
command,
|
||||||
)
|
)
|
||||||
Runtime.getRuntime().exec(arr)
|
executeCommand(arr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +75,25 @@ private class ExecuteCommandSh : ExecuteCommand {
|
||||||
"-c",
|
"-c",
|
||||||
command,
|
command,
|
||||||
)
|
)
|
||||||
Runtime.getRuntime().exec(arr)
|
executeCommand(arr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Executes the given command, handling the exit
|
||||||
|
* code and throwing an exception if the program
|
||||||
|
* had failed.
|
||||||
|
*/
|
||||||
|
private suspend fun executeCommand(array: Array<String>) {
|
||||||
|
val process = run {
|
||||||
|
Runtime.getRuntime().exec(array)
|
||||||
|
}
|
||||||
|
coroutineScope {
|
||||||
|
val errorText = process.errorReader().readText()
|
||||||
|
|
||||||
|
val exitCode = process.waitFor()
|
||||||
|
if (exitCode != 0) {
|
||||||
|
throw RuntimeException(errorText)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue