use rand::{distributions::Alphanumeric, Rng}; use vergen_gitcl::{BuildBuilder, Emitter, GitclBuilder}; fn main() -> Result<(), Box> { let gitcl = GitclBuilder::default() .sha(true) // outputs 'VERGEN_GIT_SHA', and sets the 'short' flag true .commit_date(true) // outputs 'VERGEN_GIT_COMMIT_DATE' .build()?; let build = BuildBuilder::default() .build_date(true) // outputs 'VERGEN_BUILD_DATE' .build()?; Emitter::default() .add_instructions(&build)? .add_instructions(&gitcl)? .emit() .expect("Unable to generate the cargo keys!"); let build_id = match std::env::var("SOURCE_DATE_EPOCH") { Ok(val) => val, Err(_) => rand::thread_rng() .sample_iter(Alphanumeric) .take(8) .map(char::from) .collect(), }; println!("cargo:rustc-env=LIBRESPOT_BUILD_ID={build_id}"); Ok(()) }