1 use std
::{env, fs, process}
;
4 let mut args
= env
::args().skip(1);
7 "Usage: {} <op> <archive> [<member>...]",
8 env
::args().next().unwrap()
13 let op
= args
.next().unwrap();
14 let file_path
= args
.next().unwrap();
16 let file
= match fs
::File
::open(&file_path
) {
19 println
!("Failed to open file '{}': {}", file_path
, err
,);
23 let file
= match unsafe { memmap::Mmap::map(&file) }
{
26 println
!("Failed to map file '{}': {}", file_path
, err
,);
30 let archive
= match object
::read
::archive
::ArchiveFile
::parse(&*file
) {
33 println
!("Failed to parse file '{}': {}", file_path
, err
);
37 match op
.chars().next().unwrap() {
39 println
!("kind: {:?}", archive
.kind());
40 for member
in archive
.members() {
41 let member
= member
.unwrap();
42 println
!("{}", String
::from_utf8_lossy(member
.name()));
45 op
=> println
!("Invalid operation: {}", op
),