From 943ac87466b45067e59aec23e7b2b377e1173c20 Mon Sep 17 00:00:00 2001 From: Gemmarx Date: Sat, 30 Jul 2016 22:53:11 +0900 Subject: [PATCH] Change to ignore broken pipe error --- src/bin/main.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/bin/main.rs b/src/bin/main.rs index 491d793..914253e 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -2,7 +2,7 @@ extern crate exa; use exa::Exa; use std::env::args; -use std::io::stdout; +use std::io::{stdout, stderr, Write, ErrorKind}; use std::process::exit; fn main() { @@ -10,9 +10,17 @@ fn main() { let mut stdout = stdout(); match Exa::new(&args, &mut stdout) { - Ok(mut exa) => exa.run().expect("IO error"), + Ok(mut exa) => if let Err(e) = exa.run() { + match e.kind() { + ErrorKind::BrokenPipe => exit(0), + _ => { + writeln!(stderr(), "{}", e).unwrap(); + exit(1); + }, + }; + }, Err(e) => { - println!("{}", e); + writeln!(stderr(), "{}", e).unwrap(); exit(e.error_code()); }, };