diff options
Diffstat (limited to 'xtask/src/lib.rs')
-rw-r--r-- | xtask/src/lib.rs | 20 |
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) +} + |