use std::fs;
use std::path::Path;
use std::io;

fn main() {
    index_default_covers().expect("index default covers");
}

/// Index all pngs in static/images/default_covers and expose the list in the build as an
/// environment variable DEFAULT_SONG_COVERS. This list includes the path to the images so the
/// frontend can fetch them.
fn index_default_covers() -> io::Result<()> {
    let mut files = vec![];
    for dir in fs::read_dir("static/images/default_covers")? {
        let path = dir?.path();
        if path.extension().and_then(|s| s.to_str()) == Some("png") {
            let path = Path::new("/").join(path.strip_prefix("static").unwrap());
            files.push(path.to_string_lossy().to_string());
        }
    }

    let list = files.join(",");
    println!("cargo:rustc-env=DEFAULT_SONG_COVERS={list}");

    Ok(())
}
