aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/build.rs12
-rw-r--r--helix-term/src/main.rs4
2 files changed, 14 insertions, 2 deletions
diff --git a/helix-term/build.rs b/helix-term/build.rs
new file mode 100644
index 00000000..61ffa6f4
--- /dev/null
+++ b/helix-term/build.rs
@@ -0,0 +1,12 @@
+use std::process::Command;
+
+fn main() {
+ let git_hash = Command::new("git")
+ .args(&["describe", "--dirty"])
+ .output()
+ .map(|x| String::from_utf8(x.stdout).ok())
+ .ok()
+ .flatten()
+ .unwrap_or_else(|| String::from(env!("CARGO_PKG_VERSION")));
+ println!("cargo:rustc-env=VERSION_AND_GIT_HASH={}", git_hash);
+}
diff --git a/helix-term/src/main.rs b/helix-term/src/main.rs
index e178b339..3ae4f7c9 100644
--- a/helix-term/src/main.rs
+++ b/helix-term/src/main.rs
@@ -66,7 +66,7 @@ FLAGS:
-V, --version Prints version information
",
env!("CARGO_PKG_NAME"),
- env!("CARGO_PKG_VERSION"),
+ env!("VERSION_AND_GIT_HASH"),
env!("CARGO_PKG_AUTHORS"),
env!("CARGO_PKG_DESCRIPTION"),
logpath.display(),
@@ -81,7 +81,7 @@ FLAGS:
}
if args.display_version {
- println!("helix {}", env!("CARGO_PKG_VERSION"));
+ println!("helix {}", env!("VERSION_AND_GIT_HASH"));
std::process::exit(0);
}