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"