Fix native implementation

This commit is contained in:
2026-02-16 17:53:50 +01:00
parent 2679f688d5
commit a80bb11652
4 changed files with 60 additions and 14 deletions

View File

@@ -0,0 +1,20 @@
package com.infendro.shell
import platform.posix.chdir
import platform.posix.pclose
import platform.posix.popen
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
actual suspend fun execute(vararg command: String, directory: String?): Result = suspendCoroutine { continuation ->
val command = command.joinToString(" ") { """"$it"""" }
if (directory != null) {
chdir(directory)
}
val stream = popen(command, "r")!!
val value = stream.readLines().joinToString("")
val code = pclose(stream)
val result = Result.from(code, value)
continuation.resume(result)
}