diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-04-10 09:19:03 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-04-10 10:29:27 +0300 |
commit | c196a68471dd9dafbcc4030342aa4164d7a2d3e3 (patch) | |
tree | e1c3441158fa4843ad8f0bf1165417ad6e69aed9 | |
parent | 82eb02a0437ba8a7bf2025f5b61864b450ee68b2 (diff) | |
download | obnam2-c196a68471dd9dafbcc4030342aa4164d7a2d3e3.tar.gz |
refactor: struct List subcommand
-rw-r--r-- | src/bin/obnam.rs | 7 | ||||
-rw-r--r-- | src/cmd/list.rs | 20 | ||||
-rw-r--r-- | src/cmd/mod.rs | 4 |
3 files changed, 18 insertions, 13 deletions
diff --git a/src/bin/obnam.rs b/src/bin/obnam.rs index f639153..9e0ab0f 100644 --- a/src/bin/obnam.rs +++ b/src/bin/obnam.rs @@ -4,7 +4,8 @@ use log4rs::append::file::FileAppender; use log4rs::config::{Appender, Config, Logger, Root}; use obnam::cmd::backup::Backup; use obnam::cmd::init::Init; -use obnam::cmd::{get_chunk, list, list_files, restore, show_config, show_generation}; +use obnam::cmd::list::List; +use obnam::cmd::{get_chunk, list_files, restore, show_config, show_generation}; use obnam::config::ClientConfig; use std::path::{Path, PathBuf}; use structopt::StructOpt; @@ -30,7 +31,7 @@ fn main() -> anyhow::Result<()> { match opt.cmd { Command::Init(_) => panic!("this cannot happen"), Command::Backup(x) => x.run(&config), - Command::List => list(&config), + Command::List(x) => x.run(&config), Command::ShowGeneration { gen_id } => show_generation(&config, &gen_id), Command::ListFiles { gen_id } => list_files(&config, &gen_id), Command::Restore { gen_id, to } => restore(&config, &gen_id, &to), @@ -98,7 +99,7 @@ struct Opt { enum Command { Init(Init), Backup(Backup), - List, + List(List), ListFiles { #[structopt(default_value = "latest")] gen_id: String, diff --git a/src/cmd/list.rs b/src/cmd/list.rs index f48512b..66036b9 100644 --- a/src/cmd/list.rs +++ b/src/cmd/list.rs @@ -1,14 +1,20 @@ use crate::client::BackupClient; use crate::config::ClientConfig; use crate::error::ObnamError; +use structopt::StructOpt; -pub fn list(config: &ClientConfig) -> Result<(), ObnamError> { - let client = BackupClient::new(config)?; +#[derive(Debug, StructOpt)] +pub struct List {} - let generations = client.list_generations()?; - for finished in generations.iter() { - println!("{} {}", finished.id(), finished.ended()); - } +impl List { + pub fn run(&self, config: &ClientConfig) -> Result<(), ObnamError> { + let client = BackupClient::new(config)?; + + let generations = client.list_generations()?; + for finished in generations.iter() { + println!("{} {}", finished.id(), finished.ended()); + } - Ok(()) + Ok(()) + } } diff --git a/src/cmd/mod.rs b/src/cmd/mod.rs index fd5f8e9..1f6bd78 100644 --- a/src/cmd/mod.rs +++ b/src/cmd/mod.rs @@ -1,8 +1,6 @@ pub mod backup; pub mod init; - -mod list; -pub use list::list; +pub mod list; mod list_files; pub use list_files::list_files; |