diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-08-04 11:09:45 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-08-04 11:09:45 +0000 |
commit | 0af848392da0471076f9a393fe09d4f808ef63a8 (patch) | |
tree | 7e41201b6c320ea1c812e15586c47794f4bcc341 /src | |
parent | aa7812a971f35fcb217a3e115f06a51f3706f5ca (diff) | |
parent | 34bbdc7fc0ad76105146ccb2e62be1ad6164f7ef (diff) | |
download | obnam2-0af848392da0471076f9a393fe09d4f808ef63a8.tar.gz |
Merge branch 'bugfix/overlapping-progress-bars' into 'main'
fix: do not overlap "download" and "incremental" progress bars
See merge request obnam/obnam!172
Diffstat (limited to 'src')
-rw-r--r-- | src/backup_run.rs | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/backup_run.rs b/src/backup_run.rs index 3b107bb..7b24e14 100644 --- a/src/backup_run.rs +++ b/src/backup_run.rs @@ -17,7 +17,7 @@ pub struct BackupRun<'a> { client: &'a BackupClient, policy: BackupPolicy, buffer_size: usize, - progress: BackupProgress, + progress: Option<BackupProgress>, } #[derive(Debug, thiserror::Error)] @@ -56,7 +56,7 @@ impl<'a> BackupRun<'a> { client, policy: BackupPolicy::default(), buffer_size: config.chunk_size, - progress: BackupProgress::initial(), + progress: Some(BackupProgress::initial()), }) } @@ -68,7 +68,7 @@ impl<'a> BackupRun<'a> { client, policy: BackupPolicy::default(), buffer_size: config.chunk_size, - progress: BackupProgress::incremental(), + progress: None, }) } @@ -87,8 +87,11 @@ impl<'a> BackupRun<'a> { } Some(genid) => { let old = self.fetch_previous_generation(genid, oldname)?; - self.progress - .files_in_previous_generation(old.file_count()? as u64); + + let progress = BackupProgress::incremental(); + progress.files_in_previous_generation(old.file_count()? as u64); + self.progress = Some(progress); + Ok(old) } } @@ -106,7 +109,9 @@ impl<'a> BackupRun<'a> { } pub fn finish(&self) { - self.progress.finish(); + if let Some(progress) = &self.progress { + progress.finish(); + } } pub fn backup_roots( @@ -194,11 +199,15 @@ impl<'a> BackupRun<'a> { } fn found_live_file(&self, path: &Path) { - self.progress.found_live_file(path); + if let Some(progress) = &self.progress { + progress.found_live_file(path); + } } fn found_problem(&self) { - self.progress.found_problem(); + if let Some(progress) = &self.progress { + progress.found_problem(); + } } } |