summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-08-04 11:09:45 +0000
committerLars Wirzenius <liw@liw.fi>2021-08-04 11:09:45 +0000
commit0af848392da0471076f9a393fe09d4f808ef63a8 (patch)
tree7e41201b6c320ea1c812e15586c47794f4bcc341 /src
parentaa7812a971f35fcb217a3e115f06a51f3706f5ca (diff)
parent34bbdc7fc0ad76105146ccb2e62be1ad6164f7ef (diff)
downloadobnam2-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.rs25
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();
+ }
}
}