interface process { use common.{env-vars}; /// A command. record command { /// The command to execute. command: string, /// The arguments to pass to the command. args: list<string>, /// The environment variables to set for the command. env: env-vars, } /// The output of a finished process. record output { /// The status (exit code) of the process. /// /// On Unix, this will be `None` if the process was terminated by a signal. status: option<s32>, /// The data that the process wrote to stdout. stdout: list<u8>, /// The data that the process wrote to stderr. stderr: list<u8>, } /// Executes the given command as a child process, waiting for it to finish /// and collecting all of its output. run-command: func(command: command) -> result<output, string>;}
interface process {
use common.{env-vars};
/// A command.
record command {
/// The command to execute.
command: string,
/// The arguments to pass to the command.
args: list<string>,
/// The environment variables to set for the command.
env: env-vars,
}
/// The output of a finished process.
record output {
/// The status (exit code) of the process.
///
/// On Unix, this will be `None` if the process was terminated by a signal.
status: option<s32>,
/// The data that the process wrote to stdout.
stdout: list<u8>,
/// The data that the process wrote to stderr.
stderr: list<u8>,
}
/// Executes the given command as a child process, waiting for it to finish
/// and collecting all of its output.
run-command: func(command: command) -> result<output, string>;
}