diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-11-13 09:40:39 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-11-13 11:27:21 +0200 |
commit | 38b51382e710dda515e6d0df8fdc4f0b253d9cd7 (patch) | |
tree | 5a012e63ef7aa6ae63c31f459d56631bc008b0b5 /src/bin/obnam.rs | |
parent | 179993f3bdd5e5d4dd728fc2a8f5d63274f95966 (diff) | |
download | obnam2-38b51382e710dda515e6d0df8fdc4f0b253d9cd7.tar.gz |
refactor: put all client functionality into one program
Diffstat (limited to 'src/bin/obnam.rs')
-rw-r--r-- | src/bin/obnam.rs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/bin/obnam.rs b/src/bin/obnam.rs new file mode 100644 index 0000000..d0cf271 --- /dev/null +++ b/src/bin/obnam.rs @@ -0,0 +1,52 @@ +use log::{debug, info}; +use obnam::cmd::{backup, list, restore}; +use std::path::PathBuf; +use structopt::StructOpt; + +const BUFFER_SIZE: usize = 1024 * 1024; + +fn main() -> anyhow::Result<()> { + pretty_env_logger::init(); + + let opt = Opt::from_args(); + info!("obnam starts"); + debug!("opt: {:?}", opt); + + match opt { + Opt::Backup { config } => backup(&config, BUFFER_SIZE)?, + Opt::List { config } => list(&config)?, + Opt::Restore { + config, + gen_id, + dbname, + to, + } => restore(&config, &gen_id, &dbname, &to)?, + } + Ok(()) +} + +#[derive(Debug, StructOpt)] +#[structopt(name = "obnam-backup", about = "Simplistic backup client")] +enum Opt { + Backup { + #[structopt(parse(from_os_str))] + config: PathBuf, + }, + List { + #[structopt(parse(from_os_str))] + config: PathBuf, + }, + Restore { + #[structopt(parse(from_os_str))] + config: PathBuf, + + #[structopt()] + gen_id: String, + + #[structopt(parse(from_os_str))] + dbname: PathBuf, + + #[structopt(parse(from_os_str))] + to: PathBuf, + }, +} |