Move error handling to a callback

This commit is contained in:
sharkdp 2020-03-21 19:51:59 +01:00 committed by David Peter
parent a7338e2ea2
commit fc1ca0875a
3 changed files with 6 additions and 2 deletions

View File

@ -211,7 +211,7 @@ fn main() {
match result {
Err(error) => {
handle_error(&error);
default_error_handler(&error);
process::exit(1);
}
Ok(false) => {

View File

@ -20,6 +20,10 @@ impl<'b> Controller<'b> {
}
pub fn run(&self) -> Result<bool> {
self.run_with_error_handler(default_error_handler)
}
pub fn run_with_error_handler(&self, handle_error: impl Fn(&Error)) -> Result<bool> {
// Do not launch the pager if NONE of the input files exist
let mut paging_mode = self.config.paging_mode;
if self.config.paging_mode != PagingMode::Never {

View File

@ -9,7 +9,7 @@ error_chain! {
}
}
pub fn handle_error(error: &Error) {
pub fn default_error_handler(error: &Error) {
match error {
Error(ErrorKind::Io(ref io_error), _)
if io_error.kind() == ::std::io::ErrorKind::BrokenPipe =>