diff --git a/src/main.rs b/src/main.rs index c53fbef..192ab7f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,20 @@ use std::env; use std::fs; use std::process; +fn apply_renames(filename: &String, renames: &HashMap) -> Result<()> { + let mut outputs = Vec::new(); + + let pls_file = File::open(filename)?; + for entry in BufReader::new(pls_file).lines() { + let entry = entry?; + let new = renames.get(&entry).unwrap_or(&entry).to_string(); + outputs.push(new); + } + let data = outputs.join("\n"); + fs::write(filename, data).expect("unable to write"); + Ok(()) +} + fn main() -> Result<()> { let args: Vec = env::args().collect(); @@ -14,8 +28,6 @@ fn main() -> Result<()> { } let rename_file = &args[1]; - let playlist_file = &args[2]; - println!("{:?}", rename_file); let file = File::open(rename_file)?; let mut renames = HashMap::new(); @@ -24,24 +36,16 @@ fn main() -> Result<()> { let split: Vec<&str> = line.split("\t\t").collect(); renames.insert(split[0].to_string(), split[1].to_string()); } - - let mut outputs = Vec::new(); - - let pls_file = File::open(playlist_file)?; - for entry in BufReader::new(pls_file).lines() { - let entry = entry?; - let new = renames.get(&entry).unwrap_or(&entry).to_string(); + for r in &args[2..] { + try!(apply_renames(&r, &renames)); /* - if new != &entry { - println!("renamed “{}” to “{}”", entry, new); - } else { - println!("“{}” remains unchanged", entry); - } + match apply_renames(&r, &renames) { + Ok(()) => println!("Successfully processed renames for {}", r) + }, + _ => println!("Error processing {}", r); */ - outputs.push(new); } - let data = outputs.join("\n"); - fs::write("playlist2.m3u", data).expect("unable to write"); - Ok(()) + + Ok(()) }