use std::process::Command; fn main() { println!("cargo:rerun-if-changed=.git/HEAD"); if let Ok(head) = std::fs::read_to_string(".git/HEAD") && let Some(reference) = head.strip_prefix("ref: ") { println!("cargo:rerun-if-changed=.git/{}", reference.trim()); } let short = Command::new("git") .args(["rev-parse", "--short=8", "HEAD"]) .output() .ok() .filter(|output| output.status.success()) .and_then(|output| String::from_utf8(output.stdout).ok()) .map(|value| value.trim().to_string()) .filter(|value| !value.is_empty()) .unwrap_or_else(|| "unknown".to_string()); println!("cargo:rustc-env=PEERSPEAK_GIT_SHORT={short}"); }