mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-21 04:58:42 +00:00
Merge pull request #181 from qryxip/add-pkgfmt-tbz2
This commit is contained in:
commit
0998439312
4 changed files with 10 additions and 0 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -134,6 +134,7 @@ version = "0.9.1"
|
|||
dependencies = [
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"bzip2",
|
||||
"cargo_toml",
|
||||
"clap 3.1.18",
|
||||
"crates_io_api",
|
||||
|
|
|
@ -21,6 +21,7 @@ pkg-fmt = "zip"
|
|||
[dependencies]
|
||||
async-trait = "0.1.56"
|
||||
bytes = "1.1.0"
|
||||
bzip2 = { version = "0.4.3", features = ["static"] }
|
||||
cargo_toml = "0.11.4"
|
||||
clap = { version = "3.1.18", features = ["derive"] }
|
||||
crates_io_api = { version = "0.8.0", default-features = false, features = ["rustls"] }
|
||||
|
|
|
@ -10,6 +10,8 @@ use strum_macros::{Display, EnumString, EnumVariantNames};
|
|||
pub enum PkgFmt {
|
||||
/// Download format is TAR (uncompressed)
|
||||
Tar,
|
||||
/// Download format is TAR + Bzip2
|
||||
Tbz2,
|
||||
/// Download format is TGZ (TAR + GZip)
|
||||
Tgz,
|
||||
/// Download format is TAR + XZ
|
||||
|
@ -34,6 +36,7 @@ impl PkgFmt {
|
|||
pub fn decompose(self) -> PkgFmtDecomposed {
|
||||
match self {
|
||||
PkgFmt::Tar => PkgFmtDecomposed::Tar(TarBasedFmt::Tar),
|
||||
PkgFmt::Tbz2 => PkgFmtDecomposed::Tar(TarBasedFmt::Tbz2),
|
||||
PkgFmt::Tgz => PkgFmtDecomposed::Tar(TarBasedFmt::Tgz),
|
||||
PkgFmt::Txz => PkgFmtDecomposed::Tar(TarBasedFmt::Txz),
|
||||
PkgFmt::Tzstd => PkgFmtDecomposed::Tar(TarBasedFmt::Tzstd),
|
||||
|
@ -54,6 +57,8 @@ pub enum PkgFmtDecomposed {
|
|||
pub enum TarBasedFmt {
|
||||
/// Download format is TAR (uncompressed)
|
||||
Tar,
|
||||
/// Download format is TAR + Bzip2
|
||||
Tbz2,
|
||||
/// Download format is TGZ (TAR + GZip)
|
||||
Tgz,
|
||||
/// Download format is TAR + XZ
|
||||
|
@ -66,6 +71,7 @@ impl From<TarBasedFmt> for PkgFmt {
|
|||
fn from(fmt: TarBasedFmt) -> Self {
|
||||
match fmt {
|
||||
TarBasedFmt::Tar => PkgFmt::Tar,
|
||||
TarBasedFmt::Tbz2 => PkgFmt::Tbz2,
|
||||
TarBasedFmt::Tgz => PkgFmt::Tgz,
|
||||
TarBasedFmt::Txz => PkgFmt::Txz,
|
||||
TarBasedFmt::Tzstd => PkgFmt::Tzstd,
|
||||
|
|
|
@ -2,6 +2,7 @@ use std::fs::File;
|
|||
use std::io::{self, BufRead, Read};
|
||||
use std::path::Path;
|
||||
|
||||
use bzip2::bufread::BzDecoder;
|
||||
use flate2::bufread::GzDecoder;
|
||||
use log::debug;
|
||||
use tar::Archive;
|
||||
|
@ -19,6 +20,7 @@ pub(super) fn create_tar_decoder(
|
|||
|
||||
let r: Box<dyn Read> = match fmt {
|
||||
Tar => Box::new(dat),
|
||||
Tbz2 => Box::new(BzDecoder::new(dat)),
|
||||
Tgz => Box::new(GzDecoder::new(dat)),
|
||||
Txz => Box::new(XzDecoder::new(dat)),
|
||||
Tzstd => {
|
||||
|
|
Loading…
Add table
Reference in a new issue