Skip to main content

strata_kernel/
build.rs

1use std::process::Command;
2
3pub fn git_build_id() -> String {
4    let commit = match Command::new("git")
5        .args(["rev-parse", "--short=12", "HEAD"])
6        .output()
7    {
8        Ok(output) if output.status.success() => {
9            let value = String::from_utf8_lossy(&output.stdout).trim().to_string();
10            if value.is_empty() {
11                "unknown".to_string()
12            } else {
13                value
14            }
15        }
16        _ => "unknown".to_string(),
17    };
18    let dirty = match Command::new("git").args(["status", "--porcelain"]).output() {
19        Ok(output) => output.status.success() && !output.stdout.is_empty(),
20        Err(_) => false,
21    };
22    if dirty {
23        format!("{commit}-dirty")
24    } else {
25        commit
26    }
27}