From f96f454791eac5bddf7c6d97e74e06702d922c59 Mon Sep 17 00:00:00 2001 From: kageru Date: Sun, 11 Nov 2018 10:55:33 +0100 Subject: [PATCH] Process multiple files at a time --- src/main.rs | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) 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(()) }