Merge branch 'imag-bookmark-cli' into master

This commit is contained in:
Matthias Beyer 2019-05-18 12:36:08 +02:00
commit 55a7c268d7
3 changed files with 18 additions and 14 deletions

View file

@ -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]

View file

@ -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 {

View file

@ -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")