diff options
author | sharkdp <davidpeter@web.de> | 2020-04-22 21:45:47 +0200 |
---|---|---|
committer | David Peter <sharkdp@users.noreply.github.com> | 2020-04-22 23:55:28 +0200 |
commit | 702cb198da986203aefe9c2fa6d024d8cbe96346 (patch) | |
tree | ee9944f2127da9df401fbd3e641343987d5680d6 /src/error.rs | |
parent | 5f826419d13e74fcdea851947364a1d5d69d152e (diff) |
Rename error module
Diffstat (limited to 'src/error.rs')
-rw-r--r-- | src/error.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 00000000..cabf4f2a --- /dev/null +++ b/src/error.rs @@ -0,0 +1,34 @@ +use error_chain::error_chain; + +error_chain! { + foreign_links { + Clap(::clap::Error) #[cfg(feature = "application")]; + Io(::std::io::Error); + SyntectError(::syntect::LoadingError); + ParseIntError(::std::num::ParseIntError); + GlobParsingError(::globset::Error); + SerdeYamlError(::serde_yaml::Error); + } +} + +pub fn default_error_handler(error: &Error) { + use ansi_term::Colour::Red; + + match error { + Error(ErrorKind::Io(ref io_error), _) + if io_error.kind() == ::std::io::ErrorKind::BrokenPipe => + { + ::std::process::exit(0); + } + Error(ErrorKind::SerdeYamlError(_), _) => { + eprintln!( + "{}: Error while parsing metadata.yaml file: {}", + Red.paint("[bat error]"), + error + ); + } + _ => { + eprintln!("{}: {}", Red.paint("[bat error]"), error); + } + }; +} |