use std::path::Path;
use super::{Cli, CliError, ExitInfo, stream};
impl Cli {
pub fn exec_in_world(
binary: &str,
overrides: &[(String, String)],
cwd: Option<&Path>,
args: &[&str],
) -> Result<ExitInfo, CliError> {
let cli = Self::new(binary).with_env(overrides.to_vec());
let mut cmd = crate::git_env::command(cli.binary());
cmd.args(args).envs(cli.standing_env());
if let Some(dir) = cwd {
cmd.current_dir(dir);
}
let status = crate::git_env::status(&mut cmd)
.map_err(|source| CliError::spawn(cli.binary(), cwd, source))?;
Ok(stream::exit_info(Some(status)))
}
}