use crate::poem::Verse; use crate::poem::{read::Readable, recite::Reciteable, Poem}; use std::fs; use std::path::Path; pub fn incant(verse: &Verse, path: &Vec<&Path>, bins: &mut Vec) -> i32 { let files = match verse.clause() { Some(clause) => clause, None => { eprintln!("source: not enough arguments"); return 1; } }; for file in files { let poetry = match fs::read_to_string(&file) { Ok(contents) => contents, Err(e) => { eprintln!( "source: could not load {}: {}", file, e.to_string().to_lowercase() ); return 127; } }; let poem = match Poem::read(poetry) { Ok(poem) => poem, Err(e) => { eprintln!("dwvsh: {}", e.to_string().to_lowercase()); continue; } }; match poem.recite(path, bins, None) { Ok(_) => {} Err(e) => { eprintln!("dwvsh: {}", e.to_string().to_lowercase()); continue; } } } 0 }