summaryrefslogtreecommitdiff
path: root/cli/util/progress_bar/mod.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-08-08 14:54:29 +0100
committerGitHub <noreply@github.com>2024-08-08 13:54:29 +0000
commit6e8612f319d1475f0034e57f0145b4163a534797 (patch)
treed5c2101e45593e210d7ecfc12e06bcec9f177e33 /cli/util/progress_bar/mod.rs
parent4c56353594a53066009393cbd3b8b771f692e565 (diff)
feat: refresh "Download" progress bar with a spinner (#24913)
This commit adds a spinner to "Download" progress bar and makes it multiline, showing up to 4 lines of documents being downloaded.
Diffstat (limited to 'cli/util/progress_bar/mod.rs')
-rw-r--r--cli/util/progress_bar/mod.rs22
1 files changed, 11 insertions, 11 deletions
diff --git a/cli/util/progress_bar/mod.rs b/cli/util/progress_bar/mod.rs
index 6d247818d..91bf4950f 100644
--- a/cli/util/progress_bar/mod.rs
+++ b/cli/util/progress_bar/mod.rs
@@ -223,23 +223,23 @@ impl DrawThreadRenderer for ProgressBarInner {
if state.entries.is_empty() {
return String::new();
}
- let preferred_entry = state
+ let display_entries = state
.entries
.iter()
- .find(|e| e.percent() > 0f64)
- .or_else(|| state.entries.iter().last())
- .unwrap();
+ .map(|e| ProgressDataDisplayEntry {
+ prompt: e.prompt,
+ message: e.message.to_string(),
+ position: e.position(),
+ total_size: e.total_size(),
+ })
+ .collect::<Vec<_>>();
+
ProgressData {
duration: state.start_time.elapsed(),
terminal_width: size.cols,
pending_entries: state.entries.len(),
total_entries: state.total_entries,
- display_entry: ProgressDataDisplayEntry {
- prompt: preferred_entry.prompt,
- message: preferred_entry.message.clone(),
- position: preferred_entry.position(),
- total_size: preferred_entry.total_size(),
- },
+ display_entries,
percent_done: {
let mut total_percent_sum = 0f64;
for entry in &state.entries {
@@ -273,7 +273,7 @@ impl ProgressBar {
Arc::new(renderer::BarProgressBarRenderer)
}
ProgressBarStyle::TextOnly => {
- Arc::new(renderer::TextOnlyProgressBarRenderer)
+ Arc::new(renderer::TextOnlyProgressBarRenderer::default())
}
}),
}