diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-01-26 19:59:55 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-02-09 13:45:13 +0100 |
commit | 947d7900bf48a724aa7717e067ea4e81d4aa82ce (patch) | |
tree | bffebb4c9028978265bc21692e0b893afa0f77c8 /imag-store | |
parent | 1fb29a11c8ba7b9e9b80f0578d26f91cdb497628 (diff) |
Implement Store::delete() interface
Diffstat (limited to 'imag-store')
-rw-r--r-- | imag-store/src/delete.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/imag-store/src/delete.rs b/imag-store/src/delete.rs index df13b32b..d645f743 100644 --- a/imag-store/src/delete.rs +++ b/imag-store/src/delete.rs @@ -1,5 +1,33 @@ +use std::path::PathBuf; + use libimagrt::runtime::Runtime; +use util::build_entry_path; + pub fn delete(rt: &Runtime) { + use std::process::exit; + + rt.cli() + .subcommand_matches("delete") + .map(|sub| { + sub.value_of("id") + .map(|id| { + debug!("Deleting file at {:?}", id); + rt.store() + .delete(build_entry_path(rt, id)) + .map_err(|e| { + warn!("Error: {:?}", e); + exit(1); + }) + }) + .or_else(|| { + warn!("No ID passed. Will exit now"); + exit(1); + }) + }) + .or_else(|| { + warn!("No subcommand 'delete'. Will exit now"); + exit(1); + }); } |