xdgdir 0.8.0

Resolves paths according to the XDG Base Directory Specification
Documentation
use std::env;
use xdgdir::BaseDir;

fn main() {
    let args: Vec<String> = env::args().collect();
    if args.len() != 2 {
        eprintln!("Usage: print_dirs <app_name>");
        std::process::exit(1);
    }
    let app_name = &args[1];

    match BaseDir::new(app_name) {
        Ok(dirs) => {
            println!("home={}", dirs.home.display());
            println!("config={}", dirs.config.display());
            println!("data={}", dirs.data.display());
            println!("state={}", dirs.state.display());
            println!("cache={}", dirs.cache.display());
            println!("bin={}", dirs.bin.display());
            if let Some(runtime) = dirs.runtime {
                println!("runtime={}", runtime.display());
            }
        }
        Err(e) => {
            eprintln!("Error: {}", e);
            std::process::exit(1);
        }
    }
}