summaryrefslogtreecommitdiff
path: root/src/cmd/backup.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-04-10 09:16:30 +0300
committerLars Wirzenius <liw@liw.fi>2021-04-10 10:29:27 +0300
commit82eb02a0437ba8a7bf2025f5b61864b450ee68b2 (patch)
treeb27bda1c18e18e47aca7cb457caa4ee311ea7461 /src/cmd/backup.rs
parent822a2f8c6c4d83d82d4543eb5fcf0ed01df21435 (diff)
downloadobnam2-82eb02a0437ba8a7bf2025f5b61864b450ee68b2.tar.gz
refactor: struct Backup subcommand
Diffstat (limited to 'src/cmd/backup.rs')
-rw-r--r--src/cmd/backup.rs32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/cmd/backup.rs b/src/cmd/backup.rs
index 1091241..a0e0599 100644
--- a/src/cmd/backup.rs
+++ b/src/cmd/backup.rs
@@ -10,27 +10,33 @@ use bytesize::MIB;
use log::info;
use std::path::Path;
use std::time::SystemTime;
+use structopt::StructOpt;
use tempfile::NamedTempFile;
const SQLITE_CHUNK_SIZE: usize = MIB as usize;
-pub fn backup(config: &ClientConfig) -> Result<(), ObnamError> {
- let runtime = SystemTime::now();
+#[derive(Debug, StructOpt)]
+pub struct Backup {}
- let client = BackupClient::new(config)?;
- let genlist = client.list_generations()?;
- let (gen_id, file_count, warnings) = match genlist.resolve("latest") {
- Err(_) => initial_backup(&config, &client)?,
- Ok(old_ref) => incremental_backup(&old_ref, &config, &client)?,
- };
+impl Backup {
+ pub fn run(&self, config: &ClientConfig) -> Result<(), ObnamError> {
+ let runtime = SystemTime::now();
- for w in warnings.iter() {
- println!("warning: {}", w);
- }
+ let client = BackupClient::new(config)?;
+ let genlist = client.list_generations()?;
+ let (gen_id, file_count, warnings) = match genlist.resolve("latest") {
+ Err(_) => initial_backup(&config, &client)?,
+ Ok(old_ref) => incremental_backup(&old_ref, &config, &client)?,
+ };
+
+ for w in warnings.iter() {
+ println!("warning: {}", w);
+ }
- report_stats(&runtime, file_count, &gen_id, warnings.len())?;
+ report_stats(&runtime, file_count, &gen_id, warnings.len())?;
- Ok(())
+ Ok(())
+ }
}
fn report_stats(