mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-23 18:21:13 +08:00
25 lines
1.0 KiB
Rust
25 lines
1.0 KiB
Rust
//! 构建脚本:取构建期 git 短哈希注入二进制(`GIT_COMMIT` 环境变量)。
|
|
//!
|
|
//! 哈希供 `--version` 自报,作为二进制新鲜度自证锚点(与 `git rev-parse --short HEAD`
|
|
//! 对照即可判定二进制是否落后于 HEAD)。无 git 环境(CI、解压源码)哈希缺省
|
|
//! `unknown`,构建不失败。
|
|
|
|
fn main() {
|
|
// 构建脚本或源码变化时重跑,保持哈希与源码同步。
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
println!("cargo:rerun-if-changed=src");
|
|
println!("cargo:rerun-if-changed=Cargo.toml");
|
|
|
|
// git 缺失或无提交时容缺,哈希缺省 "unknown"。
|
|
let hash = std::process::Command::new("git")
|
|
.args(["rev-parse", "--short", "HEAD"])
|
|
.output()
|
|
.ok()
|
|
.filter(|o| o.status.success())
|
|
.map(|o| String::from_utf8_lossy(&o.stdout).trim().to_string())
|
|
.filter(|h| !h.is_empty())
|
|
.unwrap_or_else(|| "unknown".to_string());
|
|
|
|
println!("cargo:rustc-env=GIT_COMMIT={hash}");
|
|
}
|