summaryrefslogtreecommitdiffstats
path: root/bin/domain/imag-log/src/main.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2018-02-14 18:00:34 +0100
committerMatthias Beyer <mail@beyermatthias.de>2018-02-19 10:40:26 +0100
commit013fc75d85f8e356fb7f76f659bf39ee19b9e949 (patch)
tree3c7fc5dee7be6548ac1763ddb8119bb773bf6ab3 /bin/domain/imag-log/src/main.rs
parent88d21375b9bd10c3d4e4a3a9203ec697a0f398a5 (diff)
Fix output for broken pipe errors
Diffstat (limited to 'bin/domain/imag-log/src/main.rs')
-rw-r--r--bin/domain/imag-log/src/main.rs20
1 files changed, 13 insertions, 7 deletions
diff --git a/bin/domain/imag-log/src/main.rs b/bin/domain/imag-log/src/main.rs
index 66a34add..c3f80017 100644
--- a/bin/domain/imag-log/src/main.rs
+++ b/bin/domain/imag-log/src/main.rs
@@ -43,9 +43,13 @@ extern crate libimaglog;
extern crate libimagerror;
extern crate libimagdiary;
+use std::io::Write;
+
use libimagrt::runtime::Runtime;
use libimagrt::setup::generate_runtime_setup;
use libimagerror::trace::MapErrTrace;
+use libimagerror::io::ToExitCode;
+use libimagerror::exit::ExitUnwrap;
use libimagdiary::diary::Diary;
use libimaglog::log::Log;
use libimaglog::error::LogError as LE;
@@ -117,26 +121,28 @@ fn show(rt: &Runtime) {
};
for iter in iters {
- for element in iter {
+ let _ = iter.map(|element| {
let e = element.map_err_trace_exit_unwrap(1);
if !e.is_log().map_err_trace_exit_unwrap(1) {
- continue;
+ return Ok(());
}
let id = e.diary_id().map_err_trace_exit_unwrap(1);
- println!("{dname: >10} - {y: >4}-{m:0>2}-{d:0>2}T{H:0>2}:{M:0>2} - {text}",
+ writeln!(::std::io::stdout(),
+ "{dname: >10} - {y: >4}-{m:0>2}-{d:0>2}T{H:0>2}:{M:0>2} - {text}",
dname = id.diary_name(),
y = id.year(),
m = id.month(),
d = id.day(),
H = id.hour(),
M = id.minute(),
- text = e.get_content());
- }
+ text = e.get_content())
+ .to_exit_code()
+ })
+ .collect::<Result<(), i32>>()
+ .unwrap_or_exit();
}
-
- info!("Ready.");
}
fn get_diary_name(rt: &Runtime) -> String {