Merge branch 'imag-bookmark-cli' into master
This commit is contained in:
commit
55a7c268d7
3 changed files with 18 additions and 14 deletions
|
@ -30,6 +30,7 @@ failure = "0.1"
|
|||
libimagrt = { version = "0.10.0", path = "../../../lib/core/libimagrt" }
|
||||
libimagerror = { version = "0.10.0", path = "../../../lib/core/libimagerror" }
|
||||
libimagbookmark = { version = "0.10.0", path = "../../../lib/domain/libimagbookmark" }
|
||||
libimagentrylink = { version = "0.10.0", path = "../../../lib/entry/libimagentrylink" }
|
||||
libimagutil = { version = "0.10.0", path = "../../../lib/etc/libimagutil" }
|
||||
|
||||
[dependencies.clap]
|
||||
|
|
|
@ -44,6 +44,7 @@ extern crate libimagbookmark;
|
|||
#[macro_use] extern crate libimagrt;
|
||||
extern crate libimagerror;
|
||||
extern crate libimagutil;
|
||||
extern crate libimagentrylink;
|
||||
|
||||
use std::io::Write;
|
||||
use std::process::exit;
|
||||
|
@ -60,6 +61,8 @@ use libimagerror::trace::{MapErrTrace, trace_error};
|
|||
use libimagerror::io::ToExitCode;
|
||||
use libimagerror::exit::ExitUnwrap;
|
||||
use libimagutil::debug_result::DebugResult;
|
||||
use libimagentrylink::internal::InternalLinker;
|
||||
|
||||
|
||||
mod ui;
|
||||
|
||||
|
@ -130,6 +133,16 @@ fn collection(rt: &Runtime) {
|
|||
|
||||
if scmd.is_present("remove") { // remove a collection
|
||||
let name = scmd.value_of("remove").unwrap();
|
||||
|
||||
{ // remove all links
|
||||
let _ = BookmarkCollectionStore::get(rt.store(), &name)
|
||||
.map_err_trace_exit_unwrap()
|
||||
.ok_or_else(|| format_err!("Collection does not exist: {}", name))
|
||||
.map_err_trace_exit_unwrap()
|
||||
.unlink(rt.store())
|
||||
.map_err_trace_exit_unwrap();
|
||||
}
|
||||
|
||||
if let Ok(_) = BookmarkCollectionStore::delete(rt.store(), &name) {
|
||||
info!("Deleted: {}", name);
|
||||
} else {
|
||||
|
|
|
@ -35,14 +35,13 @@ pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> {
|
|||
.value_name("COLLECTION")
|
||||
.help("Add to this collection, if not specified default from config will be used"))
|
||||
.arg(Arg::with_name("urls")
|
||||
.long("urls")
|
||||
.short("u")
|
||||
.index(1)
|
||||
.takes_value(true)
|
||||
.required(true)
|
||||
.multiple(true)
|
||||
.value_name("URL")
|
||||
.validator(is_url)
|
||||
.help("Add this URL, multiple possible"))
|
||||
.help("Add this URL(s)"))
|
||||
)
|
||||
|
||||
.subcommand(SubCommand::with_name("remove")
|
||||
|
@ -57,14 +56,13 @@ pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> {
|
|||
.value_name("COLLECTION")
|
||||
.help("Remove from this collection, if not specified default from config will be used"))
|
||||
.arg(Arg::with_name("urls")
|
||||
.long("urls")
|
||||
.short("u")
|
||||
.index(1)
|
||||
.takes_value(true)
|
||||
.required(true)
|
||||
.multiple(true)
|
||||
.value_name("URL")
|
||||
.validator(is_url)
|
||||
.help("Remove these urls, regex supported"))
|
||||
.help("Remove this url(s)"))
|
||||
)
|
||||
|
||||
// .subcommand(SubCommand::with_name("open")
|
||||
|
@ -91,14 +89,6 @@ pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> {
|
|||
.multiple(false)
|
||||
.value_name("COLLECTION")
|
||||
.help("Select from this collection, if not specified default from config will be used"))
|
||||
.arg(Arg::with_name("tags")
|
||||
.long("tags")
|
||||
.short("t")
|
||||
.takes_value(true)
|
||||
.required(false)
|
||||
.multiple(true)
|
||||
.value_name("TAGS")
|
||||
.help("Filter links to contain these tags. When multiple tags are specified, all of them must be set for the link to match."))
|
||||
)
|
||||
|
||||
.subcommand(SubCommand::with_name("collection")
|
||||
|
|
Loading…
Reference in a new issue