Function parse_tar

Source
pub fn parse_tar(i: &[u8]) -> IResult<&[u8], Vec<TarEntry<'_>>>
Expand description

Parse the whole data as a TAR file, and return all entries.

use tar_parser2::*;

let (_, entries) = parse_tar(&file[..])?;
for entry in entries {
    let mut name = entry.header.name.to_string();
    if let ExtraHeader::UStar(extra) = entry.header.ustar {
        if let UStarExtraHeader::Posix(extra) = extra.extra {
            if !extra.prefix.is_empty() {
                name = format!("{}/{}", extra.prefix, name);
            }
        }
    }
    println!("{}", name);
}