diff options
Diffstat (limited to 'src/git.rs')
-rw-r--r-- | src/git.rs | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -5,6 +5,12 @@ use std::path::{Path, PathBuf}; use std::process::Command; use std::time::{Duration, SystemTime, UNIX_EPOCH}; +#[derive(Debug, thiserror::Error)] +pub enum GitError { + #[error("failed to parse Unix timetamp: {0}")] + ParseUnixTimestamp(String, #[source] std::num::ParseIntError), +} + pub fn git(args: &[&str], cwd: &Path) -> Result<String, SiteError> { assert!(!args.is_empty()); let output = Command::new("git") @@ -34,7 +40,7 @@ pub fn git_whatchanged(cwd: &Path) -> Result<HashMap<PathBuf, SystemTime>, SiteE let secs = caps.name("secs").unwrap().as_str(); let timestamp = secs .parse::<u64>() - .map_err(|e| SiteError::ParseUnixTimestamp(secs.into(), e))?; + .map_err(|e| GitError::ParseUnixTimestamp(secs.into(), e))?; mtime = Some(UNIX_EPOCH + Duration::new(timestamp, 0)); } else if let Some(caps) = filepat.captures(line) { let flag = caps.name("flag").unwrap().as_str(); |