summaryrefslogtreecommitdiff
path: root/src/bin/obnam.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-11-13 09:40:39 +0200
committerLars Wirzenius <liw@liw.fi>2020-11-13 11:27:21 +0200
commit38b51382e710dda515e6d0df8fdc4f0b253d9cd7 (patch)
tree5a012e63ef7aa6ae63c31f459d56631bc008b0b5 /src/bin/obnam.rs
parent179993f3bdd5e5d4dd728fc2a8f5d63274f95966 (diff)
downloadobnam2-38b51382e710dda515e6d0df8fdc4f0b253d9cd7.tar.gz
refactor: put all client functionality into one program
Diffstat (limited to 'src/bin/obnam.rs')
-rw-r--r--src/bin/obnam.rs52
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,
+ },
+}