diff options
| author | jimvdl <jimvdlind@gmail.com> | 2023-08-31 10:02:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-31 10:02:53 +0200 |
| commit | aea20670d8418e434bc47e673fdcb2b79c7cd039 (patch) | |
| tree | 74d484cac3a9fb5da43cddcba63300a821cfa33b /crates/typst-cli/src/package.rs | |
| parent | 6b7db851e99120bb7295d285e061add4535fad82 (diff) | |
Display download progress for self-updating and packages (#2031)
Diffstat (limited to 'crates/typst-cli/src/package.rs')
| -rw-r--r-- | crates/typst-cli/src/package.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/typst-cli/src/package.rs b/crates/typst-cli/src/package.rs index cbec1da0..bec86516 100644 --- a/crates/typst-cli/src/package.rs +++ b/crates/typst-cli/src/package.rs @@ -8,6 +8,7 @@ use typst::diag::{PackageError, PackageResult}; use typst::syntax::PackageSpec; use super::color_stream; +use crate::download::download_with_progress; /// Make a package available in the on-disk cache. pub fn prepare_package(spec: &PackageSpec) -> PackageResult<PathBuf> { @@ -49,15 +50,15 @@ fn download_package(spec: &PackageSpec, package_dir: &Path) -> PackageResult<()> ); print_downloading(spec).unwrap(); - let reader = match ureq::get(&url).call() { - Ok(response) => response.into_reader(), + let data = match download_with_progress(&url) { + Ok(data) => data, Err(ureq::Error::Status(404, _)) => { return Err(PackageError::NotFound(spec.clone())) } Err(_) => return Err(PackageError::NetworkFailed), }; - let decompressed = flate2::read::GzDecoder::new(reader); + let decompressed = flate2::read::GzDecoder::new(data.as_slice()); tar::Archive::new(decompressed).unpack(package_dir).map_err(|_| { fs::remove_dir_all(package_dir).ok(); PackageError::MalformedArchive |
