From 899dd23a135c8c6c73cb6f8809389fd57707f6eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kh=E1=BA=A3i?= Date: Tue, 5 Sep 2023 18:05:10 +0700 Subject: [PATCH] fix: install more packages without panics (#111) --- pacquet/crates/cli/src/package.rs | 2 +- pacquet/crates/registry/src/package_distribution.rs | 4 ++-- pacquet/crates/tarball/src/lib.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pacquet/crates/cli/src/package.rs b/pacquet/crates/cli/src/package.rs index e0b5c2a3e5..2ee52faaa5 100644 --- a/pacquet/crates/cli/src/package.rs +++ b/pacquet/crates/cli/src/package.rs @@ -53,7 +53,7 @@ async fn internal_fetch( let cas_paths = download_tarball_to_store( tarball_cache, &config.store_dir, - &package_version.dist.integrity, + package_version.dist.integrity.as_ref().expect("has integrity field"), package_version.dist.unpacked_size, package_version.as_tarball_url(), ) diff --git a/pacquet/crates/registry/src/package_distribution.rs b/pacquet/crates/registry/src/package_distribution.rs index dd5d8613da..2f865eedb1 100644 --- a/pacquet/crates/registry/src/package_distribution.rs +++ b/pacquet/crates/registry/src/package_distribution.rs @@ -3,8 +3,8 @@ use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Default, Clone, Eq)] #[serde(rename_all = "camelCase")] pub struct PackageDistribution { - pub integrity: String, - pub shasum: String, + pub integrity: Option, + pub shasum: Option, pub tarball: String, pub file_count: Option, pub unpacked_size: Option, diff --git a/pacquet/crates/tarball/src/lib.rs b/pacquet/crates/tarball/src/lib.rs index 939aab800e..738944e5ab 100644 --- a/pacquet/crates/tarball/src/lib.rs +++ b/pacquet/crates/tarball/src/lib.rs @@ -165,7 +165,7 @@ pub async fn download_tarball_to_store( error, })?; let url = package_url.to_string(); // TODO: use Arc - let cas_paths = tokio::task::spawn_blocking(move || { + let cas_paths = tokio::task::spawn(async move { verify_checksum(&response, package_integrity) .map_err(|error| VerifyChecksumError { url, error })?; let data = decompress_gzip(&response, package_unpacked_size)?;