Walk through filesystem and print metadata

This commit is contained in:
Connor Johnstone
2026-03-02 21:09:47 -05:00
commit 8a07a3edc2
6 changed files with 281 additions and 0 deletions

30
src/main.rs Normal file
View File

@@ -0,0 +1,30 @@
mod filesystem;
mod metadata;
use std::env;
use std::path::Path;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
eprintln!("Usage: {} <directory>", args[0]);
std::process::exit(1);
}
let dir = Path::new(&args[1]);
for path in filesystem::walk_music_files(dir) {
println!("{}", path.display());
match metadata::read_track_metadata(&path) {
Ok(Some(meta)) => {
let unknown = "(unknown)";
println!(" Title: {}", meta.title.as_deref().unwrap_or(unknown));
println!(" Artist: {}", meta.artist.as_deref().unwrap_or(unknown));
println!(" Album: {}", meta.album.as_deref().unwrap_or(unknown));
}
Ok(None) => println!(" (no metadata tags found)"),
Err(e) => eprintln!(" warning: could not read metadata: {e}"),
}
}
}