fn main() {
let output = std::process::Command::new("git")
.args(["rev-parse", "--short", "HEAD"])
.output();
let hash = match output {
Ok(o) => String::from_utf8_lossy(&o.stdout).trim().to_string(),
Err(_) => "unknown".to_string(),
};
println!("cargo:rustc-env=GIT_HASH={}", hash);
println!("cargo:rerun-if-changed=.git/HEAD");
if let Ok(head) = std::fs::read_to_string(".git/HEAD") {
let head = head.trim();
if let Some(refpath) = head.strip_prefix("ref: ") {
println!("cargo:rerun-if-changed=.git/{}", refpath);
}
}
}