mirror of
git://git.proxmox.com/git/pxar.git
synced 2024-12-22 21:33:50 +03:00
33 lines
866 B
Rust
33 lines
866 B
Rust
|
use pxar::decoder::aio::Decoder;
|
||
|
|
||
|
#[tokio::main]
|
||
|
async fn main() {
|
||
|
let mut args = std::env::args_os().skip(1);
|
||
|
|
||
|
let file = args.next().expect("expected a file name");
|
||
|
let file = tokio::fs::File::open(file)
|
||
|
.await
|
||
|
.expect("failed to open file");
|
||
|
|
||
|
let mut reader = Decoder::from_tokio(file)
|
||
|
.await
|
||
|
.expect("failed to open pxar archive contents");
|
||
|
let mut i = 0;
|
||
|
while let Some(entry) = reader.next().await {
|
||
|
println!("{:#?}", entry.expect("failed to parse entry").path());
|
||
|
i += 1;
|
||
|
if i == 2 {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Use a Stream for the remaining entries:
|
||
|
use futures::stream::StreamExt;
|
||
|
|
||
|
let mut stream = reader.into_stream();
|
||
|
|
||
|
while let Some(entry) = stream.next().await {
|
||
|
println!("{:#?}", entry.expect("failed to parse entry").path());
|
||
|
}
|
||
|
}
|