1use capsec_core::cap::Cap;
6use capsec_core::cap_provider::CapProvider;
7use capsec_core::error::CapSecError;
8use capsec_core::permission::Spawn;
9use std::process::{Command, Output};
10
11pub fn command(program: &str, cap: &impl CapProvider<Spawn>) -> Result<Command, CapSecError> {
16 let _proof: Cap<Spawn> = cap.provide_cap(program)?;
17 Ok(Command::new(program))
18}
19
20pub fn run(
23 program: &str,
24 args: &[&str],
25 cap: &impl CapProvider<Spawn>,
26) -> Result<Output, CapSecError> {
27 let _proof: Cap<Spawn> = cap.provide_cap(program)?;
28 Ok(Command::new(program).args(args).output()?)
29}