unpak 1.0.5

a no-nonsense unreal pak parsing crate
Documentation
fn main() {
    let mut args = std::env::args();
    let path = args.nth(1).unwrap_or_default();
    let mut key = None;
    if let Some(hash) = args.next() {
        match hex::decode(hash.trim_start_matches("0x")) {
            Ok(bytes) => key = Some(bytes),
            Err(e) => {
                eprintln!("hex: {e}");
                std::io::stdin().read_line(&mut String::new()).unwrap();
                return;
            }
        }
    }
    match unpak::Pak::new_any(path, key.as_deref()) {
        Ok(pak) => println!("{}", pak.version()),
        Err(e) => eprintln!("{e}"),
    }
    std::io::stdin().read_line(&mut String::new()).unwrap();
}