fn main() { if let Err(err) = emit_git_variables() { println!("cargo:warning=vergen: {}", err); } } fn emit_git_variables() -> anyhow::Result<()> { println!("cargo::rerun-if-env-changed=MEILI_NO_VERGEN"); let has_vergen = !matches!(std::env::var_os("MEILI_NO_VERGEN"), Some(x) if x != "false" && x != "0"); anyhow::ensure!(has_vergen, "disabled via `MEILI_NO_VERGEN`"); // Note: any code that needs VERGEN_ environment variables should take care to define them manually in the Dockerfile and pass them // in the corresponding GitHub workflow (publish_docker.yml). // This is due to the Dockerfile building the binary outside of the git directory. let mut builder = vergen_git2::Git2Builder::default(); builder.branch(true); builder.commit_timestamp(true); builder.commit_message(true); builder.describe(true, true, None); builder.sha(false); let git2 = builder.build()?; vergen_git2::Emitter::default().fail_on_error().add_instructions(&git2)?.emit() }