extern crate debpkg; use std::env; use std::fs::File; use std::path::Path; use std::process; fn main() { let args: Vec = env::args().collect(); if args.len() != 2 { println!("usage: pkglist "); process::exit(1); } let deb_path = Path::new(&args[1]); if !deb_path.exists() { println!("\"{}\" does not exist", deb_path.display()); process::exit(1); } let deb_file = match File::open(deb_path) { Ok(file) => file, Err(e) => { println!( "ERROR: Failed to open debian file \"{}\"", deb_path.display() ); println!(" {}", e); process::exit(1); } }; let mut pkg = match debpkg::DebPkg::parse(deb_file) { Ok(pkg) => pkg, Err(e) => { println!( "ERROR: Failed to parse debian file \"{}\"", deb_path.display() ); println!(" {}", e); process::exit(1); } }; let mut data = pkg.data().unwrap(); let entries = data.entries().unwrap(); let files: Vec = entries .map(|e| e.unwrap().path().unwrap().into_owned()) .collect(); for file in files { println!("{}", file.display()); } }