use std::path::Path;
use super::Cli;
impl Cli {
pub(crate) fn and_wrapper(&self, wrapper: Vec<String>) -> Self {
let mut cli = self.clone();
cli.wrapper = wrapper;
cli
}
pub(super) fn spawn_base(&self) -> std::process::Command {
let mut cmd = crate::git_env::command(self.exec_target());
if let Some((_, flags)) = self.wrapper.split_first() {
cmd.args(flags).arg(&self.program);
}
cmd.args(&self.prefix);
cmd
}
pub(super) fn exec_target(&self) -> &Path {
self.wrapper
.first()
.map_or(self.program.as_path(), Path::new)
}
}