squash! fixup! Show commit hash in version when built from source
If the release is tagged, we don't want to show the commit hash when running `zoxide -V`.
This commit is contained in:
parent
91263789ef
commit
f4d237d07a
39
build.rs
39
build.rs
|
|
@ -1,14 +1,35 @@
|
|||
use std::process::Command;
|
||||
|
||||
fn main() {
|
||||
let mut hash = std::process::Command::new("git")
|
||||
.args(&["rev-parse", "--short", "HEAD"])
|
||||
.output()
|
||||
let status_code = Command::new("git")
|
||||
.args(&["describe", "--tags", "--exact-match", "--dirty"])
|
||||
.status()
|
||||
.ok()
|
||||
.and_then(|proc| String::from_utf8(proc.stdout).ok())
|
||||
.unwrap_or_default();
|
||||
.and_then(|status| status.code());
|
||||
|
||||
if !hash.is_empty() {
|
||||
hash = format!("-{}", hash);
|
||||
}
|
||||
let is_tagged = match status_code {
|
||||
Some(code) => code == 0,
|
||||
None => false,
|
||||
};
|
||||
|
||||
println!("cargo:rustc-env=GIT_HASH={}", hash);
|
||||
// If this is a tagged commit (a release), we don't want to include the
|
||||
// commit hash in the version output.
|
||||
let revision = if is_tagged {
|
||||
String::new()
|
||||
} else {
|
||||
let mut hash = Command::new("git")
|
||||
.args(&["rev-parse", "--short", "HEAD"])
|
||||
.output()
|
||||
.ok()
|
||||
.and_then(|proc| String::from_utf8(proc.stdout).ok())
|
||||
.unwrap_or_default();
|
||||
|
||||
if !hash.is_empty() {
|
||||
hash = format!("-{}", hash);
|
||||
}
|
||||
|
||||
hash
|
||||
};
|
||||
|
||||
println!("cargo:rustc-env=GIT_HASH={}", revision);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue