summaryrefslogtreecommitdiffstats
path: root/imag-store
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-01-26 19:59:55 +0100
committerMatthias Beyer <mail@beyermatthias.de>2016-02-09 13:45:13 +0100
commit947d7900bf48a724aa7717e067ea4e81d4aa82ce (patch)
treebffebb4c9028978265bc21692e0b893afa0f77c8 /imag-store
parent1fb29a11c8ba7b9e9b80f0578d26f91cdb497628 (diff)
Implement Store::delete() interface
Diffstat (limited to 'imag-store')
-rw-r--r--imag-store/src/delete.rs28
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);
+ });
}