diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-09-09 21:57:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-09 15:57:39 -0400 |
commit | f92bd986de7f083ac164c0e3a2b04d3504c29741 (patch) | |
tree | dbd0a3484014da69ab8258c5f8e86616574741af /cli/file_fetcher.rs | |
parent | 3bce2af0ebc997278519f5d6270915bb3fe8fd56 (diff) |
feat: download progress bar (#15814)
Diffstat (limited to 'cli/file_fetcher.rs')
-rw-r--r-- | cli/file_fetcher.rs | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs index 0e01237d9..044707cff 100644 --- a/cli/file_fetcher.rs +++ b/cli/file_fetcher.rs @@ -7,6 +7,7 @@ use crate::http_util::fetch_once; use crate::http_util::CacheSemantics; use crate::http_util::FetchOnceArgs; use crate::http_util::FetchOnceResult; +use crate::progress_bar::ProgressBar; use crate::text_encoding; use crate::version::get_user_agent; @@ -318,6 +319,7 @@ pub struct FileFetcher { http_client: reqwest::Client, blob_store: BlobStore, download_log_level: log::Level, + progress_bar: Option<ProgressBar>, } impl FileFetcher { @@ -328,6 +330,7 @@ impl FileFetcher { root_cert_store: Option<RootCertStore>, blob_store: BlobStore, unsafely_ignore_certificate_errors: Option<Vec<String>>, + progress_bar: Option<ProgressBar>, ) -> Result<Self, AnyError> { Ok(Self { auth_tokens: AuthTokens::new(env::var("DENO_AUTH_TOKENS").ok()), @@ -345,6 +348,7 @@ impl FileFetcher { )?, blob_store, download_log_level: log::Level::Info, + progress_bar, }) } @@ -584,12 +588,17 @@ impl FileFetcher { .boxed(); } - log::log!( - self.download_log_level, - "{} {}", - colors::green("Download"), - specifier - ); + let mut _maybe_guard = None; + if let Some(pb) = self.progress_bar.as_ref() { + _maybe_guard = Some(pb.update(specifier.as_str())); + } else { + log::log!( + self.download_log_level, + "{} {}", + colors::green("Download"), + specifier + ); + } let maybe_etag = match self.http_cache.get(specifier) { Ok((_, headers, _)) => headers.get("etag").cloned(), @@ -770,6 +779,7 @@ mod tests { None, blob_store.clone(), None, + None, ) .unwrap(); (file_fetcher, temp_dir, blob_store) @@ -1208,6 +1218,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let result = file_fetcher @@ -1234,6 +1245,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let specifier = @@ -1261,6 +1273,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let result = file_fetcher_02 @@ -1404,6 +1417,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let specifier = @@ -1433,6 +1447,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let result = file_fetcher_02 @@ -1533,6 +1548,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let specifier = resolve_url("http://localhost:4545/002_hello.ts").unwrap(); @@ -1558,6 +1574,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let file_fetcher_02 = FileFetcher::new( @@ -1567,6 +1584,7 @@ mod tests { None, BlobStore::default(), None, + None, ) .unwrap(); let specifier = resolve_url("http://localhost:4545/002_hello.ts").unwrap(); |