From 535b8080f7a3479523b6573d5706e73d79ab83c9 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 25 Mar 2025 15:13:50 -0600 Subject: [PATCH] Fix vergen generation --- build.rs | 18 +++++++++++++++--- justfile | 21 ++++++++++++++++----- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/build.rs b/build.rs index bc2427f..be10241 100644 --- a/build.rs +++ b/build.rs @@ -1,5 +1,17 @@ -use vergen::EmitBuilder; +fn main() -> Result<(), Box> { + // Rebuild if i18n files change + println!("cargo:rerun-if-changed=i18n"); -fn main() { - EmitBuilder::builder().git_sha(true).emit().unwrap(); + // Emit version information (if not cached by just vendor) + let mut vergen = vergen::EmitBuilder::builder(); + println!("cargo:rerun-if-env-changed=VERGEN_GIT_COMMIT_DATE"); + if std::env::var_os("VERGEN_GIT_COMMIT_DATE").is_none() { + vergen.git_commit_date(); + } + println!("cargo:rerun-if-env-changed=VERGEN_GIT_SHA"); + if std::env::var_os("VERGEN_GIT_SHA").is_none() { + vergen.git_sha(false); + } + vergen.fail_on_error().emit()?; + Ok(()) } diff --git a/justfile b/justfile index 31ae2e4..64b60d2 100644 --- a/justfile +++ b/justfile @@ -82,12 +82,23 @@ uninstall: # Vendor dependencies locally vendor: + #!/usr/bin/env bash mkdir -p .cargo - cargo vendor --sync Cargo.toml \ - | head -n -1 > .cargo/config - echo 'directory = "vendor"' >> .cargo/config - tar pcf vendor.tar vendor - rm -rf vendor + cargo vendor --sync Cargo.toml | head -n -1 > .cargo/config.toml + echo 'directory = "vendor"' >> .cargo/config.toml + echo >> .cargo/config.toml + echo '[env]' >> .cargo/config.toml + if [ -n "${SOURCE_DATE_EPOCH}" ] + then + source_date="$(date -d "@${SOURCE_DATE_EPOCH}" "+%Y-%m-%d")" + echo "VERGEN_GIT_COMMIT_DATE = \"${source_date}\"" >> .cargo/config.toml + fi + if [ -n "${SOURCE_GIT_HASH}" ] + then + echo "VERGEN_GIT_SHA = \"${SOURCE_GIT_HASH}\"" >> .cargo/config.toml + fi + tar pcf vendor.tar .cargo vendor + rm -rf .cargo vendor # Extracts vendored dependencies vendor-extract: