From 427ad89e55f83a49c3e888b5f2d4d969e511a9cb Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Wed, 14 Feb 2018 18:47:15 +0100 Subject: [PATCH] Fix broken pipe panics --- bin/domain/imag-notes/src/main.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bin/domain/imag-notes/src/main.rs b/bin/domain/imag-notes/src/main.rs index d15a211d..df1870e2 100644 --- a/bin/domain/imag-notes/src/main.rs +++ b/bin/domain/imag-notes/src/main.rs @@ -28,6 +28,7 @@ extern crate libimagerror; extern crate libimagutil; extern crate libimagstore; +use std::io::Write; use std::process::exit; use itertools::Itertools; @@ -39,6 +40,8 @@ use libimagstore::iter::get::StoreIdGetIteratorExtension; use libimagnotes::note::Note; use libimagnotes::notestore::*; use libimagerror::trace::MapErrTrace; +use libimagerror::exit::ExitUnwrap; +use libimagerror::io::ToExitCode; use libimagerror::iter::TraceIterator; use libimagutil::info_result::*; use libimagutil::warn_result::WarnResult; @@ -116,6 +119,8 @@ fn edit(rt: &Runtime) { fn list(rt: &Runtime) { use std::cmp::Ordering; + let mut out = ::std::io::stdout(); + let _ = rt .store() .all_notes() @@ -133,10 +138,10 @@ fn list(rt: &Runtime) { }) .iter() .for_each(|note| { - note.get_name() - .map(|name| println!("{}", name)) - .map_err_trace() - .ok(); + let name = note.get_name().map_err_trace_exit_unwrap(1); + writeln!(out, "{}", name) + .to_exit_code() + .unwrap_or_exit() }); }