diff options
-rw-r--r-- | clab.md | 8 | ||||
-rw-r--r-- | src/main.rs | 11 |
2 files changed, 13 insertions, 6 deletions
@@ -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<Entry> = 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); } } } |