nix: Compile commit hash into program version

Changes build.rs to take the GIT_HEAD environment variable into account
if `git rev-parse` is unable to determine the current commit hash.
This commit is contained in:
Michael Raitza 2024-02-08 11:37:49 +01:00 committed by cloudhead
parent fb13e5f970
commit 4b1ca18d0c
No known key found for this signature in database
2 changed files with 5 additions and 1 deletions

View File

@ -1,4 +1,5 @@
use std::process::Command;
use std::env;
fn main() {
// Set a build-time `GIT_HEAD` env var which includes the commit id;
@ -16,7 +17,7 @@ fn main() {
None
}
})
.unwrap_or_else(|| String::from("unknown"));
.unwrap_or(env::var("GIT_HEAD").unwrap_or("unknown".into()));
println!("cargo:rustc-env=GIT_HEAD={hash}");
println!("cargo:rustc-rerun-if-changed=.git/HEAD");

View File

@ -89,6 +89,9 @@
# Additional darwin specific inputs can be set here
pkgs.libiconv
];
preBuild = lib.optionalString (self.shortRev or null != null) ''
export GIT_HEAD=${self.shortRev}
'';
};
# Build *just* the cargo dependencies, so we can reuse