fn main() {
let tag = std::process::Command::new("git")
.args(["describe", "--tags", "--always"])
.output()
.ok()
.and_then(|o| String::from_utf8(o.stdout).ok())
.unwrap_or_else(|| "unknown".into());
println!("cargo:rustc-env=GIT_TAG={}", tag.trim());
let exact_tag = std::process::Command::new("git")
.args(["describe", "--tags", "--exact-match"])
.output()
.ok()
.and_then(|o| String::from_utf8(o.stdout).ok());
if let Some(tag) = exact_tag {
println!("cargo:rustc-env=GIT_EXACT_TAG={}", tag.trim());
}
println!("cargo:rerun-if-changed=../../.git/HEAD");
println!("cargo:rerun-if-changed=../../.git/refs/");
println!("cargo:rerun-if-changed=../../.git/packed-refs");
}