diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-10-20 18:16:42 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-10-21 20:05:54 +0300 |
commit | bc6ceda21f2b616d6bfedd9b5e2136e3b7b47e8d (patch) | |
tree | 15329e9300d3a8a74dcf3f498c78559355892a38 | |
parent | 18dedca71451dab31f43a0725277308471d32dfe (diff) | |
download | subplot-bc6ceda21f2b616d6bfedd9b5e2136e3b7b47e8d.tar.gz |
fix: say for which file lookup of input file mtime fails
Sponsored-by: author
-rw-r--r-- | src/bin/subplot.rs | 5 | ||||
-rw-r--r-- | src/error.rs | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/bin/subplot.rs b/src/bin/subplot.rs index 907e616..a85ad62 100644 --- a/src/bin/subplot.rs +++ b/src/bin/subplot.rs @@ -308,7 +308,10 @@ impl Docgen { } fn mtime(filename: &Path) -> Result<(u64, u32)> { - let mtime = fs::metadata(filename)?.modified()?; + let mtime = fs::metadata(filename) + .map_err(|e| SubplotError::InputFileUnreadable(filename.into(), e))? + .modified() + .map_err(|e| SubplotError::InputFileMtime(filename.into(), e))?; let mtime = mtime.duration_since(UNIX_EPOCH)?; Ok((mtime.as_secs(), mtime.subsec_nanos())) } diff --git a/src/error.rs b/src/error.rs index 53eccad..a729bf0 100644 --- a/src/error.rs +++ b/src/error.rs @@ -321,6 +321,14 @@ pub enum SubplotError { /// String formatting failed. #[error("Failed in string formattiing: {0}")] StringFormat(std::fmt::Error), + + /// Input file could not be read. + #[error("Failed to read input file {0}")] + InputFileUnreadable(PathBuf, #[source] std::io::Error), + + /// Input file mtime lookup. + #[error("Failed to get modification time of {0}")] + InputFileMtime(PathBuf, #[source] std::io::Error), } impl SubplotError { |