Browse Source

Show actual Tera source error

index-subcmd
Vincent Prouillet 5 years ago
parent
commit
776bf41123
2 changed files with 13 additions and 2 deletions
  1. +11
    -1
      components/errors/src/lib.rs
  2. +2
    -1
      src/console.rs

+ 11
- 1
components/errors/src/lib.rs View File

@@ -29,7 +29,17 @@ unsafe impl Send for Error {}


impl StdError for Error { impl StdError for Error {
fn source(&self) -> Option<&(dyn StdError + 'static)> { fn source(&self) -> Option<&(dyn StdError + 'static)> {
self.source.as_ref().map(|c| &**c)
let mut source = self.source.as_ref().map(|c| &**c);
if source.is_none() {
match self.kind {
ErrorKind::Tera(ref err) => {
source = err.source()
},
_ => ()
};
}

source
} }
} }




+ 2
- 1
src/console.rs View File

@@ -8,6 +8,7 @@ use chrono::Duration;
use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor}; use termcolor::{Color, ColorChoice, ColorSpec, StandardStream, WriteColor};


use site::Site; use site::Site;
use errors::Error;


lazy_static! { lazy_static! {
/// Termcolor color choice. /// Termcolor color choice.
@@ -92,7 +93,7 @@ pub fn report_elapsed_time(instant: Instant) {
} }


/// Display an error message and the actual error(s) /// Display an error message and the actual error(s)
pub fn unravel_errors(message: &str, error: &StdError) {
pub fn unravel_errors(message: &str, error: &Error) {
if !message.is_empty() { if !message.is_empty() {
self::error(message); self::error(message);
} }


Loading…
Cancel
Save