use crate::bare::GitBare; use crate::error::{GitError, GitResult}; impl GitBare { pub fn init_repository(&self, bare: bool) -> GitResult<()> { let mut args = vec!["init".to_string()]; if bare { args.push("--bare".into()); } args.push(self.bare_dir.to_string_lossy().into_owned()); let result = duct::cmd("git", &args) .stdout_capture() .stderr_capture() .unchecked() .run()?; if !result.status.success() { return Err(GitError::CommandFailed { status_code: result.status.code(), stderr: String::from_utf8_lossy(&result.stderr).into_owned(), }); } Ok(()) } }