diff options
Diffstat (limited to 'src/parse.rs')
-rw-r--r-- | src/parse.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parse.rs b/src/parse.rs index a62d486c..c6a0860f 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -268,6 +268,18 @@ fn get_extension(s: &str) -> Option<&str> { .or_else(|| path.file_name().and_then(|s| s.to_str())) } +lazy_static! { + static ref SUBMODULE_SHORT_LINE_REGEX: Regex = + Regex::new("^[-+]Subproject commit ([0-9a-f]{40})$").unwrap(); +} + +pub fn get_submodule_short_commit(line: &str) -> Option<&str> { + match SUBMODULE_SHORT_LINE_REGEX.captures(line) { + Some(caps) => Some(caps.get(1).unwrap().as_str()), + None => None, + } +} + #[cfg(test)] mod tests { use super::*; |