Skip to content

Commit 8fa7e67

Browse files
committed
feat(oma-fetch,oma-refresh): support lzma and lz4 file download and decompress
1 parent d8b57ca commit 8fa7e67

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

Cargo.lock

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

oma-fetch/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ faster-hex = "0.10"
1515
sha2 = "0.10"
1616
futures = "0.3"
1717
# FIXME: issue https://github.com/AOSC-Dev/oma/issues/547, workaround downgrade to 0.4.27
18-
async-compression = { version = "=0.4.27", features = ["gzip", "xz", "futures-io", "bzip2", "zstd"] }
18+
async-compression = { version = "=0.4.27", features = ["gzip", "xz", "futures-io", "bzip2", "zstd", "lz4"] }
1919
# Note: Use the `uncheck_liblzma_version` feature here to force dynamic linking
2020
# even with older liblzma (Ubuntu 22.04 uses 5.2.x). Be mindful, however, that
2121
# async-compression depends on a different liblzma-rs than what is specified here.

oma-fetch/src/download.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ use std::{
66
time::Duration,
77
};
88

9-
use async_compression::futures::bufread::{BzDecoder, GzipDecoder, XzDecoder, ZstdDecoder};
9+
use async_compression::futures::bufread::{
10+
BzDecoder, GzipDecoder, Lz4Decoder, LzmaDecoder, XzDecoder, ZstdDecoder,
11+
};
1012
use bon::bon;
1113
use futures::{AsyncRead, TryStreamExt, io::BufReader};
1214
use reqwest::{
@@ -634,10 +636,10 @@ impl<'a> SingleDownloader<'a> {
634636
CompressFile::Xz => &mut XzDecoder::new(BufReader::new(from)),
635637
CompressFile::Gzip => &mut GzipDecoder::new(BufReader::new(from)),
636638
CompressFile::Bz2 => &mut BzDecoder::new(BufReader::new(from)),
637-
CompressFile::Nothing => &mut BufReader::new(from),
638639
CompressFile::Zstd => &mut ZstdDecoder::new(BufReader::new(from)),
639-
CompressFile::Lzma => unimplemented!(),
640-
CompressFile::Lz4 => unimplemented!(),
640+
CompressFile::Lzma => &mut LzmaDecoder::new(BufReader::new(from)),
641+
CompressFile::Lz4 => &mut Lz4Decoder::new(BufReader::new(from)),
642+
CompressFile::Nothing => &mut BufReader::new(from),
641643
};
642644

643645
let mut reader = reader.compat();

oma-refresh/src/db.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,8 @@ fn collect_download_task(
878878
Some("xz") => CompressFile::Xz,
879879
Some("bz2") => CompressFile::Bz2,
880880
Some("zst") => CompressFile::Zstd,
881+
Some("lzma") => CompressFile::Lzma,
882+
Some("lz4") => CompressFile::Lz4,
881883
_ => CompressFile::Nothing,
882884
}
883885
}

0 commit comments

Comments
 (0)