diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-01-16 17:43:35 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-01-16 18:00:11 +0200 |
commit | dc241ec8d5bbc88d1a4290d832b98b3a3969e3cc (patch) | |
tree | a6fa8bd9e6101466f8e50adb1970a61a7c178309 /src | |
parent | 5837d8a8c56cd06a71696ab1152e92d7c1464c57 (diff) | |
download | obnam2-dc241ec8d5bbc88d1a4290d832b98b3a3969e3cc.tar.gz |
feat: backup run now ends with a summary
"obnam backup" now writes a summary like the following at the end:
status: OK
duration: 24
file-count: 119245
generation-id: ef353c79-a94f-4903-bd80-e741ea454c84
We can add more fields to that later, as needed and requested. This
was the data that's easily at hand.
Diffstat (limited to 'src')
-rw-r--r-- | src/backup_progress.rs | 1 | ||||
-rw-r--r-- | src/cmd/backup.rs | 13 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/backup_progress.rs b/src/backup_progress.rs index d65f104..6c1d3e6 100644 --- a/src/backup_progress.rs +++ b/src/backup_progress.rs @@ -41,5 +41,6 @@ impl BackupProgress { pub fn finish(&self) { self.progress.set_length(self.progress.position()); + self.progress.finish_and_clear(); } } diff --git a/src/cmd/backup.rs b/src/cmd/backup.rs index 398a8aa..da7298f 100644 --- a/src/cmd/backup.rs +++ b/src/cmd/backup.rs @@ -3,9 +3,12 @@ use crate::client::ClientConfig; use crate::fsiter::FsIterator; use crate::generation::NascentGeneration; use log::info; +use std::time::SystemTime; use tempfile::NamedTempFile; pub fn backup(config: &ClientConfig, buffer_size: usize) -> anyhow::Result<()> { + let runtime = SystemTime::now(); + let run = BackupRun::new(config, buffer_size)?; // Create a named temporary file. We don't meed the open file @@ -25,7 +28,7 @@ pub fn backup(config: &ClientConfig, buffer_size: usize) -> anyhow::Result<()> { }; let genlist = run.client().list_generations()?; - { + let file_count = { let iter = FsIterator::new(&config.root); let mut new = NascentGeneration::create(&newname)?; @@ -43,12 +46,16 @@ pub fn backup(config: &ClientConfig, buffer_size: usize) -> anyhow::Result<()> { } } run.progress().finish(); - } + new.file_count() + }; // Upload the SQLite file, i.e., the named temporary file, which // still exists, since we persisted it above. let gen_id = run.client().upload_generation(&newname, buffer_size)?; - println!("gen id: {}", gen_id); + println!("status: OK"); + println!("duration: {}", runtime.elapsed()?.as_secs()); + println!("file-count: {}", file_count); + println!("generation-id: {}", gen_id); // Delete the temporary file.q std::fs::remove_file(&newname)?; |