From eccfd79e12187468fc491078c5d32f531c686f01 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 20 Apr 2021 09:03:37 +0300 Subject: fix: output of mutt-query --- clab.md | 8 ++++---- src/main.rs | 11 +++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/clab.md b/clab.md index 9b2bef4..f471726 100644 --- a/clab.md +++ b/clab.md @@ -13,6 +13,9 @@ then command is successful when I run clab search Alice then command is successful then stdout is exactly "" + +when I try to run clab mutt-query Alice +then command fails ~~~ # Alice and Bob @@ -43,10 +46,7 @@ then stdout doesn't contain "Bob" when I run clab mutt-query Alice then command is successful -then stdout contains "Alice Atherthon" -then stdout contains "alice@example.com" -then stdout doesn't contain "Bob" -then stdout doesn't contain "bob@example.com" +then stdout is exactly "clab found matches:\nalice@example.com\tAlice Atherthon\n" ~~~ ~~~{#address-book.yaml .file .yaml} diff --git a/src/main.rs b/src/main.rs index 08fc655..b8645d5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -176,9 +176,16 @@ struct MuttCommand { impl MuttCommand { fn run(&self, _opt: &Opt, book: &AddressBook) { - for e in book.iter().filter(|e| self.is_match(e)) { + let matches: Vec = book.iter().filter(|e| self.is_match(e)).cloned().collect(); + if matches.is_empty() { + println!("clab found no matches"); + std::process::exit(1); + } + + println!("clab found matches:"); + for e in matches { for email in e.emails() { - println!("{}\t{}", e.name, email); + println!("{}\t{}", email, e.name); } } } -- cgit v1.2.1