OXYGENHUB
◆ v0.4.2 oxygen / build.rs
1016 B · Rust · last changed Build identity in oxy --version 1 month ago source blame history raw
1
//! The build's identity, for `oxy --version`: `OXY_BUILD` when a release or
2
//! an install sets it (from `oxy describe`), else the heads a Flow job is
3
//! building, else "local build".
4
fn main() {
5
    println!("cargo:rerun-if-env-changed=OXY_BUILD");
6
    println!("cargo:rerun-if-env-changed=FLOW_HEADS");
7
    let build = std::env::var("OXY_BUILD")
8
        .ok()
9
        .map(|b| b.trim().to_string())
10
        .filter(|b| !b.is_empty())
11
        .or_else(|| {
12
            std::env::var("FLOW_HEADS")
13
                .ok()
14
                .and_then(|h| {
15
                    h.split('+')
16
                        .next()
17
                        .map(|x| format!("flow #{}", &x[..12.min(x.len())]))
18
                })
19
                .filter(|b| b.len() > "flow #".len())
20
        })
21
        .unwrap_or_else(|| "local build".into());
22
    println!("cargo:rustc-env=OXY_BUILD_ID={build}");
23
    println!(
24
        "cargo:rustc-env=OXY_VERSION_LONG={} ({build})",
25
        std::env::var("CARGO_PKG_VERSION").unwrap()
26
    );
27
}