use super::GitError;
use dirs::home_dir;
use log::warn;
use std::{fs::File, io::Write, path::PathBuf};
pub fn setup_gitconfig(directory: &str) -> Result<(), GitError> {
let home = home_dir().unwrap_or(PathBuf::from("~"));
let config = home.join(".gitconfig");
if !config.exists() {
let mut config_file = File::create(&config).map_err(|_| GitError::ConfigLoadingFailed)?;
writeln!(config_file, "[safe]\n directory = {directory}")
.map_err(|_| GitError::ConfigLoadingFailed)?;
warn!(
"There is no {}, created with safe.directory = {}.",
config.to_string_lossy(),
directory
);
}
Ok(())
}