summaryrefslogtreecommitdiff
path: root/src/backup_progress.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/backup_progress.rs')
-rw-r--r--src/backup_progress.rs25
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()));
}