summaryrefslogtreecommitdiffstats
path: root/xtask/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'xtask/src/lib.rs')
-rw-r--r--xtask/src/lib.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/xtask/src/lib.rs b/xtask/src/lib.rs
index f01fe7b..26dcbd1 100644
--- a/xtask/src/lib.rs
+++ b/xtask/src/lib.rs
@@ -8,3 +8,23 @@ const PKG_INCLUDE: &[&str] = &[
];
pub mod dist;
+pub mod release;
+
+/// Parse version from git describe output.
+pub fn git_version() -> anyhow::Result<semver::Version> {
+ let stdout = std::process::Command::new("git")
+ .arg("describe")
+ .arg("--long")
+ .arg("--abbrev=7")
+ .output()?
+ .stdout;
+
+ std::str::from_utf8(&stdout)?
+ .trim()
+ .trim_start_matches('v')
+ .replacen("-g", ".g", 1)
+ .replacen('-', "-r", 1)
+ .parse()
+ .map_err(Into::into)
+}
+