spawnProcess (Function)
Signature: spawnProcess(command: string, callback: (int, int, string) -> Unit) -> Result<int, Error>
Description: Spawns a process and reports stdout, stderr and exit events through the required callback. Returns a handle for the running process.
Parameters
- command (string): The command to execute
- callback ((int, int, string) -> Unit): Required callback receiving (processID, eventType, data); event types are stdout (1), stderr (2) and exit (3)
Returns: Result<int, Error>
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")
}
processEventHandler (processID, eventType, data) =
match eventType
1 => print "STDOUT: ${data}"
2 => print "STDERR: ${data}"
3 => print "EXIT: ${data}"
_ => print "Unknown event"
result = spawnProcess ("echo hello", processEventHandler)
match result
Success value =>
exitCode = awaitProcess value
cleanupProcess value
Error message => print "Failed"