9 lines
412 B
OCaml
9 lines
412 B
OCaml
let run (command: Command.command): Command.command =
|
|
match Unix.fork () with
|
|
| 0 -> Unix.execvp command.name (Array.of_list command.arguments)
|
|
| pid -> let (_, status) = Unix.waitpid [] pid in
|
|
match status with
|
|
| WSTOPPED n | WSIGNALED n | WEXITED n -> { command with status = Exit n }
|
|
|
|
let run_many (commands: Command.command list): Command.command list =
|
|
List.map run commands
|