From c196a68471dd9dafbcc4030342aa4164d7a2d3e3 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 10 Apr 2021 09:19:03 +0300 Subject: refactor: struct List subcommand --- src/bin/obnam.rs | 7 ++++--- src/cmd/list.rs | 20 +++++++++++++------- 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; -- cgit v1.2.1