use std::path::Path;
use anyhow::{Context, Result};
use directories::UserDirs;
use git2::opts::{set_server_connect_timeout_in_milliseconds, set_server_timeout_in_milliseconds};
pub fn check_ssh_keys() -> bool {
if let Some(user_dirs) = UserDirs::new() {
let ssh_dir = user_dirs.home_dir().join(".ssh");
let key_files = vec![
"id_rsa",
"id_ecdsa",
"id_ed25519",
"id_rsa.pub",
"id_ecdsa.pub",
"id_ed25519.pub",
];
for key in key_files {
if Path::new(&ssh_dir.join(key)).exists() {
return true; }
}
}
false }
pub fn set_git_timeout() -> Result<()> {
unsafe {
set_server_connect_timeout_in_milliseconds(3_000)
.context("failed to set libgit2 connect timeout")?;
set_server_timeout_in_milliseconds(15_000).context("failed to set libgit2 I/O timeout")?;
Ok(())
}
}