Load identities
Dependencies
- [2]
YNZMKRJDinclude more information in log - [3]
ATRA7XTTRIIR: factor out Repository struct - [*]
RVRUZGHUFactor out load_channel function - [*]
TQBJZLD7RIIR: hello, world - [*]
GKLDTVAKRIIR: add libpijul
Change contents
- edit in rust/src/repo.rs at line 1
use std::collections::HashMap;use std::env; - edit in rust/src/repo.rs at line 5
use std::fs; - edit in rust/src/repo.rs at line 11
use serde::Deserialize; - edit in rust/src/repo.rs at line 25
identities: HashMap<String, String>, - edit in rust/src/repo.rs at line 48
#[derive(Deserialize)]struct IdentityKey {key: String,}#[derive(Deserialize)]struct Identity {display_name: String,email: String,public_key: IdentityKey,} - edit in rust/src/repo.rs at line 69
let mut identities: HashMap<String, String> = HashMap::new();Self::load_identities(&mut identities, &repo_path.join(".pijul/identities")).unwrap_or(());match env::var("HOME") {Ok(home) => {Self::load_identities(&mut identities,&Path::new(&home).join(".config/pijul/identities"),).unwrap_or(());}Err(..) => {}} - edit in rust/src/repo.rs at line 85
identities, - edit in rust/src/repo.rs at line 89
fn load_identities(identities: &mut HashMap<String, String>,dir: &Path,) -> Result<(), Box<dyn Error>> {let files = fs::read_dir(dir)?;for file in files {match fs::read_to_string(dir.join(file?.path()).join("identity.toml")) {Ok(content) => {let id: Identity = toml::from_str(&content)?;identities.insert(id.public_key.key,format!("{} <{}>", id.display_name, id.email),);}Err(..) => {}}}return Ok(());} - edit in rust/src/repo.rs at line 126
if let Some(key) = a.0.get("key") {match self.identities.get(key) {Some(name) => {return name.to_string();}None => {return format!("{} <>", key);}}} - edit in rust/src/repo.rs at line 146
}if let Some(key) = a.0.get("key") {return format!("{} <>", key); - edit in rust/Cargo.toml at line 12[7.26]
serde = "1.0.156"toml = "0.5.11" - edit in rust/Cargo.lock at line 845[7.20481][7.20481]
"serde","toml",