diff --git a/Cargo.lock b/Cargo.lock index e8c49ca5..bc889e21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -924,6 +924,7 @@ dependencies = [ "reqwest", "tempfile", "tokio", + "tracing", ] [[package]] diff --git a/libraries/extensions/download/Cargo.toml b/libraries/extensions/download/Cargo.toml index 4d1dae0d..5ae30c93 100644 --- a/libraries/extensions/download/Cargo.toml +++ b/libraries/extensions/download/Cargo.toml @@ -11,3 +11,4 @@ eyre = "0.6.8" tempfile = "3.3.0" reqwest = "0.11.12" tokio = { version = "1.17.0" } +tracing = "0.1.36" diff --git a/libraries/extensions/download/src/lib.rs b/libraries/extensions/download/src/lib.rs index a7fdf2cc..b0843c83 100644 --- a/libraries/extensions/download/src/lib.rs +++ b/libraries/extensions/download/src/lib.rs @@ -3,11 +3,17 @@ use eyre::Context; use std::os::unix::prelude::PermissionsExt; use std::path::Path; use tokio::io::AsyncWriteExt; +use tracing::info; pub async fn download_file(url: T, target_path: &Path) -> Result<(), eyre::ErrReport> where T: reqwest::IntoUrl + std::fmt::Display + Copy, { + if target_path.exists() { + info!("Using cache: {:?}", target_path.to_str()); + return Ok(()); + } + if let Some(parent) = target_path.parent() { tokio::fs::create_dir_all(parent) .await