Signature: spawnProcess(command: string, callback: (int, int, string) -> Unit) -> Result<ProcessHandle, string>
Description: Spawns an external async process with MANDATORY callback for stdout/stderr capture. The callback function receives (processID: int, eventType: int, data: string) and is called for stdout (1), stderr (2), and exit (3) events. Returns a handle for the running process. CALLBACK IS REQUIRED - NO FUNCTION OVERLOADING!
Parameters #
- command (string): The command to execute
- callback ((int, int, string) -> Unit): MANDATORY callback function for process events (processID, eventType, data)
Returns: Result<int, string>
Example #
fn processEventHandler(processID: int, eventType: int, data: string) -> Unit = {
match eventType {
1 => print("STDOUT: ${data}")
2 => print("STDERR: ${data}")
3 => print("EXIT: ${data}")
_ => print("Unknown event")
}
}
let result = spawnProcess("echo hello", processEventHandler)
match result {
Success { value } => {
let exitCode = awaitProcess(value)
cleanupProcess(value)
}
Error { message } => print("Failed")
}