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 exa::Exa;
use std::env::args; use std::env::args;
use std::io::stdout; use std::io::{stdout, stderr, Write, ErrorKind};
use std::process::exit; use std::process::exit;
fn main() { fn main() {
@ -10,9 +10,17 @@ fn main() {
let mut stdout = stdout(); let mut stdout = stdout();
match Exa::new(&args, &mut 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) => { Err(e) => {
println!("{}", e); writeln!(stderr(), "{}", e).unwrap();
exit(e.error_code()); exit(e.error_code());
}, },
}; };