diff options
Diffstat (limited to 'src/backup_progress.rs')
-rw-r--r-- | src/backup_progress.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/backup_progress.rs b/src/backup_progress.rs index 6c1d3e6..c6d16d9 100644 --- a/src/backup_progress.rs +++ b/src/backup_progress.rs @@ -6,13 +6,33 @@ pub struct BackupProgress { } impl BackupProgress { - pub fn new() -> Self { + pub fn initial() -> Self { let progress = if true { ProgressBar::new(0) } else { ProgressBar::hidden() }; let parts = vec![ + "initial backup", + "elapsed: {elapsed}", + "files: {pos}", + "current: {wide_msg}", + "{spinner}", + ]; + progress.set_style(ProgressStyle::default_bar().template(&parts.join("\n"))); + progress.enable_steady_tick(100); + + Self { progress } + } + + pub fn incremental() -> Self { + let progress = if true { + ProgressBar::new(0) + } else { + ProgressBar::hidden() + }; + let parts = vec![ + "incremental backup", "{wide_bar}", "elapsed: {elapsed}", "files: {pos}/{len}", @@ -35,6 +55,9 @@ impl BackupProgress { pub fn found_live_file(&self, filename: &Path) { self.progress.inc(1); + if self.progress.length() < self.progress.position() { + self.progress.set_length(self.progress.position()); + } self.progress .set_message(&format!("{}", filename.display())); } |