use std::path::Path;
use std::{env, fs};
use chrono::{TimeZone, Utc};
fn main() {
println!("cargo:rerun-if-env-changed=SOURCE_DATE_EPOCH");
let now = match env::var("SOURCE_DATE_EPOCH") {
Ok(val) => Utc
.timestamp_opt(
val.parse::<i64>()
.expect("SOURCE_DATE_EPOCH should be a valid integer"),
0,
)
.unwrap(),
Err(_) => Utc::now(),
};
let build_id = now.format("%Y%m%d%H%M%S").to_string();
let path = Path::new(&env::var_os("OUT_DIR").unwrap()).join("build_id.rs");
fs::write(path, format!("const BUILD_ID: &str = \"{build_id}\";")).unwrap();
}