1use anyhow::{Result, anyhow};
2use std::path::PathBuf;
3
4pub fn get_home() -> Result<PathBuf> {
5 home::home_dir().map_or_else(|| Err(anyhow!("Could not find home directory")), Ok)
6}
7
8pub fn filter_fetched_keys(response: &str) -> Result<String> {
9 let mut filtered_keys = String::new();
10
11 for line in response.lines() {
12 if line.starts_with("ssh-rsa") || line.starts_with("ssh-ed25519") {
13 filtered_keys.push_str(line);
14 filtered_keys.push('\n'); }
16 }
17
18 if filtered_keys.is_empty() {
19 Err(anyhow!("No SSH keys (ssh-rsa or ssh-ed25519) found"))
20 } else {
21 Ok(filtered_keys)
22 }
23}
24
25#[cfg(test)]
26mod tests {
27 use super::*;
28
29 #[test]
30 fn test_get_home() {
31 let home = get_home().unwrap();
32 assert_eq!(home.is_dir(), true);
33 }
34}