summaryrefslogtreecommitdiffstats
path: root/imag-link
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-12-05 15:55:08 +0100
committerMatthias Beyer <mail@beyermatthias.de>2017-01-25 09:54:17 +0100
commit69d5c69eea9cd4d2dd73e4e96d501c04c2651b14 (patch)
treea91895cb15f4475f094463fa886c0fb3c5c4e9c9 /imag-link
parent64c611847b6abfb8c70a160e97d6666ca82b2692 (diff)
Provide flag to still list external links
Diffstat (limited to 'imag-link')
-rw-r--r--imag-link/src/main.rs10
-rw-r--r--imag-link/src/ui.rs7
2 files changed, 15 insertions, 2 deletions
diff --git a/imag-link/src/main.rs b/imag-link/src/main.rs
index d583d5ca..37887915 100644
--- a/imag-link/src/main.rs
+++ b/imag-link/src/main.rs
@@ -84,7 +84,7 @@ fn main() {
fn handle_internal_linking(rt: &Runtime) {
use libimagentrylink::internal::InternalLinker;
- use libimagentrylink::external::iter::NoExternalIter;
+ use libimagentrylink::external::is_external_link_storeid;
debug!("Handle internal linking call");
let cmd = rt.cli().subcommand_matches("internal").unwrap();
@@ -97,7 +97,13 @@ fn handle_internal_linking(rt: &Runtime) {
match get_entry_by_name(rt, entry) {
Ok(Some(e)) => {
e.get_internal_links()
- .map(NoExternalIter::new)
+ .map(|iter| {
+ if cmd.is_present("list-externals-too") {
+ iter.filter(|_| true)
+ } else {
+ iter.filter(|id| !is_external_link_storeid(&id))
+ }
+ })
.map(|links| {
let i = links
.filter_map(|l| {
diff --git a/imag-link/src/ui.rs b/imag-link/src/ui.rs
index 5c3c3ef1..0c2a4e13 100644
--- a/imag-link/src/ui.rs
+++ b/imag-link/src/ui.rs
@@ -71,6 +71,13 @@ pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> {
.required(false)
.help("List links to this entry")
.value_name("ENTRY"))
+
+
+ .arg(Arg::with_name("list-externals-too")
+ .long("list-external")
+ .takes_value(false)
+ .required(false)
+ .help("If --list is provided, also list external links (debugging helper that might be removed at some point"))
)
.subcommand(SubCommand::with_name("external")
.about("Add and remove external links")