Change to ignore broken pipe error

This commit is contained in:
Gemmarx 2016-07-30 22:53:11 +09:00
parent 6522337463
commit 943ac87466

View File

@ -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());
},
};