ssh_vault/
tools.rs

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'); // Add a newline to separate the lines
15        }
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}