27 lines
601 B
Rust
27 lines
601 B
Rust
use std::{
|
|
process::{Command, ExitStatus, Output},
|
|
};
|
|
|
|
#[cfg(not(target_os = "windows"))]
|
|
use std::os::unix::process::ExitStatusExt;
|
|
|
|
#[cfg(target_os = "windows")]
|
|
use std::os::windows::process::ExitStatusExt;
|
|
|
|
fn main() {
|
|
let output = String::from_utf8(
|
|
Command::new("git")
|
|
.args(["rev-parse", "HEAD"])
|
|
.output()
|
|
.unwrap_or(Output {
|
|
stdout: vec![],
|
|
stderr: vec![],
|
|
status: ExitStatus::from_raw(0),
|
|
})
|
|
.stdout,
|
|
)
|
|
.unwrap_or_default();
|
|
let git_hash = if output == String::default() { "dev".into() } else { output };
|
|
println!("cargo:rustc-env=GIT_HASH={git_hash}");
|
|
}
|