From 7701c90fd67fe9598ba312cf0c0403c1d653bd75 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 6 Nov 2017 10:19:54 -0800 Subject: work in progress on drive import/export --- src/bin/geniza-drive.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/bin') diff --git a/src/bin/geniza-drive.rs b/src/bin/geniza-drive.rs index 7f945b0..79ba480 100644 --- a/src/bin/geniza-drive.rs +++ b/src/bin/geniza-drive.rs @@ -44,6 +44,12 @@ fn run() -> Result<()> { .arg_from_usage(" 'file to add'") .arg_from_usage("--target 'path to import the file to (if not top level)'") ) + .subcommand( + SubCommand::with_name("export-file") + .about("Copies a file from dat archive to local disk") + .arg_from_usage(" 'file to export'") + .arg_from_usage("--target 'path to save the file to (if not same name)'") + ) .subcommand( SubCommand::with_name("log") .about("History of additions/deletions from this dat") @@ -61,7 +67,7 @@ fn run() -> Result<()> { let dir = Path::new(matches.value_of("dat-dir").unwrap()); match matches.subcommand() { ("init", Some(_subm)) => { - let drive = DatDrive::create(dir)?; + let _drive = DatDrive::create(dir)?; // TODO: print public key in hex println!("Done!"); } @@ -82,6 +88,15 @@ fn run() -> Result<()> { drive.import_file(&path, &fpath)?; } + ("export-file", Some(subm)) => { + let path = Path::new(subm.value_of("FILE").unwrap()); + let mut drive = DatDrive::open(dir, true)?; + let fpath = match subm.value_of("target") { + None => Path::new("/").join(path.file_name().unwrap()), + Some(p) => Path::new("/").join(p) + }; + drive.export_file(&path, &fpath)?; + } ("cat", Some(subm)) => { let path = Path::new(subm.value_of("FILE").unwrap()); let mut drive = DatDrive::open(dir, true)?; -- cgit v1.2.3