--- a/rust/rhg/src/error.rs Tue Nov 24 15:11:58 2020 +0100
+++ b/rust/rhg/src/error.rs Tue Nov 24 17:49:16 2020 +0100
@@ -1,6 +1,7 @@
use crate::exitcode;
use crate::ui::UiError;
use hg::operations::{FindRootError, FindRootErrorKind};
+use hg::requirements::RequirementsError;
use hg::utils::files::get_bytes_from_path;
use std::convert::From;
use std::path::PathBuf;
@@ -12,9 +13,8 @@
RootNotFound(PathBuf),
/// The current directory cannot be found
CurrentDirNotFound(std::io::Error),
- /// Error while reading or writing a file
- // TODO: add the file name/path?
- FileError(std::io::Error),
+ /// `.hg/requires`
+ RequirementsError(RequirementsError),
/// The standard output stream cannot be written to
StdoutError,
/// The standard error stream cannot be written to
@@ -30,7 +30,7 @@
match self {
CommandErrorKind::RootNotFound(_) => exitcode::ABORT,
CommandErrorKind::CurrentDirNotFound(_) => exitcode::ABORT,
- CommandErrorKind::FileError(_) => exitcode::ABORT,
+ CommandErrorKind::RequirementsError(_) => exitcode::ABORT,
CommandErrorKind::StdoutError => exitcode::ABORT,
CommandErrorKind::StderrError => exitcode::ABORT,
CommandErrorKind::Abort(_) => exitcode::ABORT,
@@ -62,6 +62,11 @@
]
.concat(),
),
+ CommandErrorKind::RequirementsError(
+ RequirementsError::Corrupted,
+ ) => Some(
+ "abort: .hg/requires is corrupted\n".as_bytes().to_owned(),
+ ),
CommandErrorKind::Abort(message) => message.to_owned(),
_ => None,
}
@@ -115,3 +120,11 @@
}
}
}
+
+impl From<RequirementsError> for CommandError {
+ fn from(err: RequirementsError) -> Self {
+ CommandError {
+ kind: CommandErrorKind::RequirementsError(err),
+ }
+ }
+}