diff options
Diffstat (limited to 'src/cmd/backup.rs')
-rw-r--r-- | src/cmd/backup.rs | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/src/cmd/backup.rs b/src/cmd/backup.rs index bd36a3a..a0e0599 100644 --- a/src/cmd/backup.rs +++ b/src/cmd/backup.rs @@ -1,7 +1,8 @@ use crate::backup_progress::BackupProgress; use crate::backup_run::{BackupError, IncrementalBackup, InitialBackup}; use crate::chunkid::ChunkId; -use crate::client::{BackupClient, ClientConfig}; +use crate::client::BackupClient; +use crate::config::ClientConfig; use crate::error::ObnamError; use crate::fsiter::FsIterator; use crate::generation::NascentGeneration; @@ -9,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( |