INNER CODE UNIT · Rust
git_version_status
pingw33n/vault13 · build.rs:54
fn git_version_status() -> GitVersionStatus {
let o = Command::new("git")
.args(["describe", "--always", "--dirty", "--broken", "--exclude", "snapshot-*"])
.output()
.unwrap();
let o = std::str::from_utf8(&o.stdout).unwrap().trim();
assert!(!o.is_empty());
let re = Regex::new(r#"((?P<ver>^\d+\.\d+\.\d+)|g?[a-zA-Z0-9]{7})(-(?P<dirty>dirty|broken))?$"#).unwrap();
if let Some(caps) = re.captures(o) {
let has_ver = caps.name("ver").is_some();
let dirty = caps.name("dirty").is_some();
match (has_ver, dirty) {
(true, false) => {
assert_eq!(&caps["ver"], env!("CARGO_PKG_VERSION"),
"version in Cargo.toml doesn't match version in Git tag");
GitVersionStatus::Stable
}
(false, false) => GitVersionStatus::Dev,