summaryrefslogtreecommitdiff
path: root/src/cmd/backup.rs
diff options
context:
space:
mode:
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(