use anyhow::Result;
use vergen_git2::{Build, Cargo, Emitter, Git2, Rustc};
pub fn main() -> Result<()> {
Emitter::default()
.add_instructions(&Build::all_build())?
.add_instructions(&Cargo::all_cargo())?
.add_instructions(&Git2::all_git())?
.add_instructions(&Rustc::all_rustc())?
.emit()?;
let user = std::env::var("CRAWK_BUILD_USER")
.or_else(|_| std::env::var("USER"))
.unwrap_or_else(|_| "unknown".into());
println!("cargo:rustc-env=CRAWK_BUILD_USER={user}");
if let Ok(describe) = std::env::var("CRAWK_GIT_DESCRIBE") {
println!("cargo:rustc-env=VERGEN_GIT_DESCRIBE={describe}");
}
if let Ok(ts) = std::env::var("CRAWK_BUILD_TIMESTAMP") {
println!("cargo:rustc-env=VERGEN_BUILD_TIMESTAMP={ts}");
println!(
"cargo:rustc-env=VERGEN_BUILD_DATE={}",
ts.get(..10).unwrap_or(ts.as_str())
);
}
Ok(())
}