--- a/rust/rhg/src/error.rs Thu Feb 04 13:16:21 2021 +0100
+++ b/rust/rhg/src/error.rs Thu Feb 04 13:17:55 2021 +0100
@@ -1,6 +1,7 @@
use crate::ui::utf8_to_local;
use crate::ui::UiError;
use format_bytes::format_bytes;
+use hg::config::{ConfigError, ConfigParseError};
use hg::errors::HgError;
use hg::repo::RepoFindError;
use hg::revlog::revlog::RevlogError;
@@ -66,6 +67,36 @@
}
}
+impl From<ConfigError> for CommandError {
+ fn from(error: ConfigError) -> Self {
+ match error {
+ ConfigError::Parse(ConfigParseError {
+ origin,
+ line,
+ bytes,
+ }) => {
+ let line_message = if let Some(line_number) = line {
+ format_bytes!(
+ b" at line {}",
+ line_number.to_string().into_bytes()
+ )
+ } else {
+ Vec::new()
+ };
+ CommandError::Abort {
+ message: format_bytes!(
+ b"config parse error in {}{}: '{}'",
+ origin.to_bytes(),
+ line_message,
+ bytes
+ ),
+ }
+ }
+ ConfigError::Other(error) => error.into(),
+ }
+ }
+}
+
impl From<(RevlogError, &str)> for CommandError {
fn from((err, rev): (RevlogError, &str)) -> CommandError {
match err {