|
|
@@ -1,5 +1,5 @@
|
|
|
extern crate exa;
|
|
|
-use exa::Exa;
|
|
|
+use exa::{Exa, Misfire};
|
|
|
|
|
|
use std::env::args_os;
|
|
|
use std::io::{stdout, stderr, Write, ErrorKind};
|
|
|
@@ -7,9 +7,7 @@ use std::process::exit;
|
|
|
|
|
|
fn main() {
|
|
|
let args = args_os().skip(1);
|
|
|
- let mut stdout = stdout();
|
|
|
-
|
|
|
- match Exa::new(args, &mut stdout) {
|
|
|
+ match Exa::new(args, &mut stdout()) {
|
|
|
Ok(mut exa) => {
|
|
|
match exa.run() {
|
|
|
Ok(exit_status) => exit(exit_status),
|
|
|
@@ -24,6 +22,12 @@ fn main() {
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
+
|
|
|
+ Err(e@Misfire::Help(_)) | Err(e@Misfire::Version) => {
|
|
|
+ writeln!(stdout(), "{}", e).unwrap();
|
|
|
+ exit(e.error_code());
|
|
|
+ },
|
|
|
+
|
|
|
Err(e) => {
|
|
|
writeln!(stderr(), "{}", e).unwrap();
|
|
|
exit(e.error_code());
|