From 142c1dfc5f95e34563ca4b7cae1b07a283d899c0 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 18 Mar 2016 15:24:11 +0100 Subject: [PATCH] Add tag helper to execute the CLI spec for an entry --- libimagtag/src/exec.rs | 29 +++++++++++++++++++++++++++++ libimagtag/src/lib.rs | 1 + 2 files changed, 30 insertions(+) create mode 100644 libimagtag/src/exec.rs diff --git a/libimagtag/src/exec.rs b/libimagtag/src/exec.rs new file mode 100644 index 00000000..e9603d87 --- /dev/null +++ b/libimagtag/src/exec.rs @@ -0,0 +1,29 @@ +use clap::ArgMatches; + +use libimagstore::store::FileLockEntry; + +use result::Result; +use tagable::*; +use ui::{get_add_tags, get_remove_tags}; + +pub fn exec_cli_for_entry(matches: &ArgMatches, entry: &mut FileLockEntry) -> Result<()> { + match get_add_tags(matches) { + Some(ts) => for t in ts { + if let Err(e) = entry.add_tag(t) { + return Err(e); + } + }, + None => { }, + } + + match get_remove_tags(matches) { + Some(ts) => for t in ts { + if let Err(e) = entry.remove_tag(t) { + return Err(e); + } + }, + None => { }, + } + + Ok(()) +} diff --git a/libimagtag/src/lib.rs b/libimagtag/src/lib.rs index f4d1c543..edded91b 100644 --- a/libimagtag/src/lib.rs +++ b/libimagtag/src/lib.rs @@ -6,6 +6,7 @@ extern crate toml; extern crate libimagstore; pub mod error; +pub mod exec; pub mod result; pub mod tag; pub mod tagable;